You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:27:31