如何使用CocoaLumberjack手动创建新日志文件?附配置代码
实现CocoaLumberjack手动创建新日志文件的完整配置
我看你已经完成了基础配置框架,要实现每次启动APP都手动创建新日志文件的需求,只需要补全DDLogFileManager的相关设置,再加上关键的手动触发逻辑就行。下面是完整的可运行代码和详细说明:
import CocoaLumberjack // 全局变量存储文件日志器实例 var fileLogger: DDFileLogger? func setupCocoaLumberjack() { // 配置系统日志与控制台日志输出 DDLog.add(DDASLLogger.sharedInstance, with: .debug) let ttyLogger = DDTTYLogger.sharedInstance ttyLogger.colorsEnabled = true DDLog.add(ttyLogger, with: .debug) // 初始化文件日志器 fileLogger = DDFileLogger() guard let logger = fileLogger else { return } // 核心配置:确保启动时不复用旧日志文件 logger.doNotReuseLogFiles = true // 设置日志文件24小时滚动一次(86400秒) logger.rollingFrequency = 86400 // 禁用按文件大小滚动,强制仅依赖时间触发滚动 logger.maximumFileSize = 0 // 设置日志文件保留数量,这里保留最近7天的日志 logger.logFileManager.maximumNumberOfLogFiles = 7 // 关键步骤:手动触发创建新日志文件 logger.rollLogFile() // 将文件日志器加入全局日志系统 DDLog.add(logger, with: .debug) }
配置细节说明
- 基础日志器:
DDASLLogger负责把日志输出到系统日志(可通过Mac的Console.app查看),DDTTYLogger负责控制台彩色输出,开启colorsEnabled能让不同级别日志显示不同颜色,调试时更直观。 - 文件日志核心参数:
doNotReuseLogFiles = true:阻止框架复用启动时已存在的日志文件,为手动创建新文件提供前提。rollingFrequency = 86400:设定日志文件每天自动滚动一次,即使文件未达到大小限制也会生成新文件。maximumFileSize = 0:完全禁用按文件大小滚动的逻辑,确保只有时间或手动触发才会生成新文件。
- 手动创建新文件:调用
rollLogFile()方法会立即生成一个新的日志文件,不管当前日志文件是否满足滚动条件,这正是实现“启动时创建新日志”的关键操作。 - 日志文件清理:
maximumNumberOfLogFiles = 7设置保留最近7天的日志,避免日志文件过多占用存储空间,你可以根据业务需求调整这个数值。
使用方式
在APP启动的入口处(比如AppDelegate的didFinishLaunchingWithOptions或者SceneDelegate的scene(_:willConnectTo:options:)方法中)调用setupCocoaLumberjack()即可生效。
内容的提问来源于stack exchange,提问作者user9213646
相关产品推荐
相关产品推荐

