CocoaLumberjack Apple 平台的日志框架,13k Star

文章目录

  • [CocoaLumberjack: Apple 平台的日志框架,13k Star](#CocoaLumberjack: Apple 平台的日志框架,13k Star)

CocoaLumberjack: Apple 平台的日志框架,13k Star

Apple 生态下的日志记录工具 CocoaLumberjack,获得了 13,327 个 Star。

CocoaLumberjack 是一个面向 macOS、iOS、tvOS、watchOS 和 visionOS 的日志框架。设计思路和 Java 生态中的 log4j 类似,但针对 Objective-C 和 Swift 做了大量适配,利用了多线程、GCD、无锁原子操作等平台特性。

和 NSLog 相比,CocoaLumberjack 的性能通常快一个数量级。配置也很简单,应用启动时写一行代码添加 logger,之后把 NSLog 替换成 DDLog 就能用。DDLog 的宏在语法上和 NSLog 保持一致,迁移成本很低。

一条日志可以同时发送给多个 logger,比如控制台和文件同时输出。开发者也可以自定义 logger,把日志发到网络、数据库或其他存储系统。

安装方式

CocoaLumberjack 支持 Swift Package Manager、CocoaPods、Carthage 三种依赖管理工具,也可以手动集成。

以 SPM 为例,在 Package.swift 中添加依赖:

swift 复制代码
.package(url: "https://github.com/CocoaLumberjack/CocoaLumberjack", from: "3.9.0"),

CocoaPods 用户在 Podfile 中写:

ruby 复制代码
pod 'CocoaLumberjack/Swift'

基本用法

Swift 中导入 CocoaLumberjackSwift 后,几行代码就能跑起来:

swift 复制代码
DDLog.add(DDOSLogger.sharedInstance)

let fileLogger = DDFileLogger()
fileLogger.rollingFrequency = 60 * 60 * 24
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
DDLog.add(fileLogger)

DDLogVerbose("Verbose")
DDLogDebug("Debug")
DDLogInfo("Info")
DDLogWarn("Warn")
DDLogError("Error")

日志级别分为 Verbose、Debug、Info、Warn、Error 五档,可以按文件、按 logger、按编译配置分别设置。Debug 构造输出详细日志,Release 构造只保留关键信息,编译期即可控制。

swift-log 后端

CocoaLumberjack 提供了 swift-log 的后端实现。添加 CocoaLumberjackSwiftLogBackend 依赖后,可以用 DDLogHandler 把 swift-log 的日志转发给 CocoaLumberjack 处理,日志格式和输出目标仍然通过 DDLog 配置。

平台要求

当前版本要求 Xcode 14.1 以上、Swift 5.5 以上,支持 macOS 10.13+、iOS 11+、tvOS 11+、watchOS 4+。更早的系统版本可以在历史发布版本中找到对应的兼容版本。

CocoaLumberjack 采用 BSD 3 许可证,由 Robbie Hanson 发起,目前有十余位协作者共同维护。

coaLumberjack 采用 BSD 3 许可证,由 Robbie Hanson 发起,目前有十余位协作者共同维护。