您现在的位置是:首页 >技术交流 >xcode Swift Log CocoaLumberjack网站首页技术交流

xcode Swift Log CocoaLumberjack

linzhiji 2023-07-13 16:00:02
简介xcode Swift Log CocoaLumberjack

参考
【iOS】CocoaLumberJack日志库集成 - 简书

logging - How to capture Device Logs in iOS during Runtime into a file in Documents Directory from iPhone? - Stack Overflow

GitHub - apple/swift-log: A Logging API for Swift

如何导出日志

方法一发邮件,方法二直接导出

参考:ios - Where is Logfile stored using cocoaLumberjack - Stack Overflow 

日志位置

真机路径,

#文件名为bundleid+空格+日期.log

/AppData/Library/Caches/Logs/

my mac (Designed for iPhone)

代码

#输出到控制台, console.app
DDLog.add(DDOSLogger.sharedInstance) // Uses os_log

# 输出到文件
let fileLogger: DDFileLogger = DDFileLogger() // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
DDLog.add(fileLogger)

cosole.app控制台 

 

DDFileLogger:很容易理解,是将log写入到文件中。
DDOSLogger:在iOS10开始使用,在将Log输出到 控制台.app 和 Xcode控制台。跟NSLog的输出方式一致。当然,经过处理之后,性能会比直接使用NSLog要好。
DDASLLogger:将日志写入到控制台.app中。在iOS10开始过时
DDTTYLogger:将日志写入到Xcode控制台。

日志文件定义

DDFileLogger *fileLogger = [[DDFileLogger alloc] init];
//重用log文件,不要每次启动都创建新的log文件(默认值是NO)
fileLogger.doNotReuseLogFiles = NO;
//log文件在24小时内有效,超过时间创建新log文件(默认值是24小时)
fileLogger.rollingFrequency = 60*60*24;
//log文件的最大3M(默认值1M)
fileLogger.maximumFileSize = 1024*1024*3;
//最多保存7个log文件(默认值是5)
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
//log文件夹最多保存10M(默认值是20M)
fileLogger.logFileManager.logFilesDiskQuota = 1014*1024*20;
    
//添加文件写入logger
[DDLog addLogger:fileLogger];

Log文件夹与文件名的获取

//logs文件夹路径
DDLogInfo(@"logsDirectory=%@",fileLogger.logFileManager.logsDirectory);
//logs文件夹的所有log文件路径
DDLogInfo(@"sortedLogFilePaths=%@",fileLogger.logFileManager.sortedLogFilePaths);
//当前活跃的log文件路径
DDLogInfo(@"currentFilePath=%@",fileLogger.currentLogFileInfo.filePath);

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。