参考
【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);