CocoaLumberjack 3.8.5

CocoaLumberjack 3.8.5

测试已测试
语言编程语言 Obj-CObjective C
许可 BSD-3-Clause
发布最新版本2024年3月

由以下是人员维护:Ernesto Rivera, Bogdan Poplauschi, Ernesto Rivera, Florian Friedrich, Koichi Yokota.



  • 作者
  • Robbie Hanson

CocoaLumberjack

Version License Pod Platform Carthage compatible Unit Tests codecov codebeat badge

CocoaLumberjack 是一款快速、简单、强大的且灵活的日志框架,适用于 macOS、iOS、tvOS 和 watchOS。

如何开始

首先,通过 CocoaPodsCarthageSwift 包管理器 或手动方式安装 CocoaLumberjack。然后使用 DDOSLogger(适用于 iOS 10 及以上版本)开始日志记录消息,或使用 DDTTYLoggerDDASLLogger(适用于早期版本)。

CocoaPods

platform :ios, '11.0'

target 'SampleTarget' do
  use_frameworks!
  pod 'CocoaLumberjack/Swift'
end

注意:Swift 是一个子规范,它将包含所有 Objective-C 代码以及 Swift 代码,因此这已经足够了。有关如何在 Lumberjack 中使用 Swift 的更多详细说明,请参阅 此对话

对于 Objective-C,请使用以下示例:

platform :ios, '11.0'

target 'SampleTarget' do
    pod 'CocoaLumberjack'
end

Carthage

Carthage 是 Swift 和 Objective-C 的轻量级依赖管理器。它利用 CocoaTouch 模块,相比 CocoaPods 更加侵入性小。

要用 Carthage 安装,请遵循 Carthage 的说明。

Cartfile

github "CocoaLumberjack/CocoaLumberjack"

Swift Package Manager

自 CocoaLumberjack 3.6.0 版本起,您可以使用 Swift Package Manager 作为集成方法。如果您想使用 Swift Package Manager 作为集成方法,可以使用 Xcode 添加包依赖项,或者在您的 Package.swift 中添加以下依赖项:

.package(url: "https://github.com/CocoaLumberjack/CocoaLumberjack.git", from: "3.8.0"),

请注意,您可能需要将产品 CocoaLumberjackCocoaLumberjackSwift 都添加到您的目标中,因为 SPM 有时无法检测到 CocoaLumberjackSwift 依赖于 CocoaLumberjack

手动安装

如果您想手动安装 CocoaLumberjack,请查看关于手动安装的指南 (请将 URL 替换为实际的指南地址)

Swift 用法

通常,您只需简单地 import CocoaLumberjackSwift。如果您使用 CocoaPods 安装了 CocoaLumberjack,则需要使用 import CocoaLumberjack

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)

...

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

Obj-C 用法

如果您将 Lumberjack 作为框架使用,可以使用 @import CocoaLumberjack;。否则,请使用 #import <CocoaLumberjack/CocoaLumberjack.h>

[DDLog addLogger:[DDOSLogger sharedInstance]]; // Uses os_log

DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[DDLog addLogger:fileLogger];

...

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

Objective-C ARC 语义问题

当将 Lumberjack 集成到现有的 Objective-C 项目中时,可能会遇到 发现多个名称为 'tag' 的方法,结果、参数类型或属性不匹配 的编译错误。

在导入 CocoaLumberjack 之前添加 #define DD_LEGACY_MESSAGE_TAG 0,或者在您的 Xcode 项目的 其他 C 标志/OTHER_CFLAGS 中添加 -DDD_LEGACY_MESSAGE_TAG=0

swift-log 后端

CocoaLumberjack 还提供了 swift-log 的后端实现。只需将 CocoaLumberjack 作为依赖项添加到您的 SPM 目标(见上文),并将 CocoaLumberjackSwiftLogBackend 产品作为依赖项添加到您的目标。

您可以使用 DDLogHandler 作为 swift-log 的后端,这将所有消息转发到 CocoaLumberjack 的 DDLog。您仍然可以通过 DDLog 配置想要使用的日志记录器和日志格式化程序,但编写日志信息将使用 swift-log 的 Logger 完成。

在您自己的日志格式化程序中,可以利用 DDLogMessage 上的 swiftLogInfo 属性来获取通过 swift-log 记录的消息的详细信息。

要使用 swift-log 与 CocoaLumberjack,请查看以下代码示例,了解如何开始使用。

import CocoaLumberjack
import CocoaLumberjackSwiftLogBackend
import Logging

// In your application's entry point (e.g. AppDelegate):
DDLog.add(DDOSLogger.sharedInstance) // Configure loggers
LoggingSystem.bootstrapWithCocoaLumberjack() // Use CocoaLumberjack as swift-log backend

更多信息

CocoaLumberjack 3

迁移到3.x

  • 待定

功能

Lumberjack:快速、简单、功能强大且灵活。

它在概念上与log4j等其他流行的日志记录框架类似,但专为Objective-C设计,并利用了多线程、Grand Central Dispatch(如果可用)、无锁原子操作以及Objective-C运行时的动态性等功能。

Lumberjack:快速

在大多数情况下,它比NSLog快一个数量级。

Lumberjack:简单

当应用程序启动时,只需一行代码即可配置Lumberjack。然后只需将NSLog语句替换为DDLog语句即可。(DDLog宏的格式和语法与NSLog完全相同,因此非常容易。)

Lumberjack:功能强大

一个日志语句可以发送到多个日志记录器,这意味着您可以同时向文件和控制台进行记录。想了解更多?创建自己的日志记录器(很容易)并通过网络发送日志语句。或者发送到数据库或分布式文件系统。天空才是极限。

Lumberjack 是灵活的

按照您的需求配置日志。按文件更改日志级别(适用于调试)。按日志记录器更改日志级别(详细的控制台输出,但简洁的日志文件)。按 Xcode 配置更改日志级别(详细的调试输出,但简洁的发布输出)。在发布构建中将日志语句编译出来。为您的应用自定义日志级别数量。添加您自己的细粒度日志。在运行时动态更改日志级别。选择您想要滚动日志文件的时机。将日志文件上传到中央服务器。压缩归档日志文件以节省磁盘空间...

此框架适用于您,如果

  • 您正在寻找一种方法来追踪在野外不断出现且难以复现的bug。
  • 您对 iPhone 上极短的控制台日志感到沮丧。
  • 您想将应用的支持和稳定性提升到下一个级别。
  • 您正在寻找为应用(Mac 或 iPhone)的企业级日志解决方案。

文档

要求

Lumberjack 当前版本需要

  • Xcode 14.1 或更高版本
  • Swift 5.5 或更高版本
  • macOS 10.13 或更高版本
  • iOS 11 或更高版本
  • tvOS 11 或更高版本
  • watchOS 4 或更高版本

向后兼容性

  • 对于Xcode 12和Swift至5.4,使用3.7.4版本
  • 对于Xcode 11和Swift至5.2,使用3.6.2版本
  • 对于Xcode 10和Swift 4.2,使用3.5.2版本
  • 对于iOS 8,使用3.6.1版本
  • 对于iOS 6、iOS 7、OS X 10.8、OS X 10.9和Xcode 9,使用3.4.2版本
  • 对于iOS 5和OS X 10.7,使用3.3版本
  • 对于Xcode 8和Swift 3,使用3.2版本
  • 对于Xcode 7.3和Swift 2.3,使用2.4.0版本
  • 对于Xcode 7.3和Swift 2.2,使用2.3.0版本
  • 对于Xcode 7.2和7.1,使用2.2.0版本
  • 对于Xcode 7.0或更早版本,使用2.1.0版本
  • 对于Xcode 6或更早版本,使用2.0.x版本
  • 对于OS X小于10.7的支持,使用1.6.0版本

通讯

  • 如果您需要帮助,请使用Stack Overflow。(标签'password')
  • 如果您想提问一般问题,请使用Stack Overflow
  • 如果您发现了一个错误,请提交一个问题。
  • 如果您有功能建议,请提交一个问题。
  • 如果您想要贡献,请提交合并请求。

数据收集惯例

根据App Store中的App隐私详情,苹果要求应用开发者提供他们的数据收集信息,SDK维护者必须提供相同的信息。

框架的数据收集

默认情况下,CocoaLumberjack不自己收集任何数据。

请参阅我们的数据收集惯例列表。

通过框架进行间接数据收集

CocoaLumberjack是一个日志框架,它使得将这些日志发送到不同的平台变得容易。

这就是为什么如果应用开发者将任何敏感数据包括在日志消息中,收集数据可能相当容易。

重要提示:由开发者完全负责通过我们的日志系统收集的任何敏感数据!

因此,必须遵守苹果的隐私详细政策(上面提及),并记录用户数据收集的方式。由于可能通过CocoaLumberjack间接收集数据的场景数量很大,作为应用开发者,您必须正确审查您的应用代码并识别这些情况。我们可以做到的是,通过我们的框架提高人们对潜在数据收集的意识。

私人数据包括但不限于

  • 用户信息(姓名、电子邮件、地址等)
  • 位置信息
  • 联系人
  • 标识符(用户ID、设备ID等)
  • 应用使用数据
  • 性能数据
  • 健康和健身信息
  • 财务信息
  • 敏感信息
  • 用户内容
  • 历史记录(浏览、搜索等)
  • 购买
  • 诊断
  • ...

示例:使用DDLogInfo("用户:\(myUser)")myUser信息添加到日志中,如果这些内容转发给第三方或通过电子邮件发送,则可能被视为数据收集。

作者

  • Robbie Hanson
  • 喜欢这个项目?想要给我买杯咖啡吗?(或者啤酒:D) donation

合作者

授权

  • CocoaLumberjack是以BSD 3授权协议发布的。请参阅授权文件

扩展

架构