Cocoalumberjack是MACOS,iOS,TVOS,WatchOS和Visionos的快速,简单,功能强大且灵活的伐木框架。
首先,通过Cocoapods,迦太基,Swift软件包管理器或手动安装Cocoalumberjack。然后,将iOS 10及以后的DDOSLogger使用,或DDTTYLogger和DDASLLogger用于早期版本开始记录消息。
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end注意: Swift是一个亚种,它将包含所有OBJ-C代码以及Swift的代码,因此足够了。有关如何将Swift与Lumberjack一起使用的更多详细信息,请参阅此对话。
用于目标-C使用以下内容:
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
end迦太基是Swift and Objective-C的轻量级依赖经理。它利用了Cocoatouch模块,并且不如Cocoapods侵入性。
要与迦太基安装,请按照迦太基的说明
卡特菲尔
github "CocoaLumberjack/CocoaLumberjack"
从Cocoalumberjack 3.6.0开始,您可以将Swift软件包管理器用作集成方法。如果要使用Swift Package Manager作为集成方法,请使用XCode添加软件包依赖项或将以下依赖项添加到您的软件包。Swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) ,请注意,由于SPM有时无法检测到CocoaLumberjackSwift依赖CocoaLumberjack ,因此您可能需要在目标中添加这两种产品, CocoaLumberjack和CocoaLumberjackSwift 。
如果您想手动安装Cocoalumberjack,请阅读《手动安装指南》以获取更多信息。
通常,您可以简单地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 " )如果您将伐木工人用作框架,则可以@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中时,可以将其插入Multiple methods named 'tag' found with mismatched result, parameter type or attributes 。
添加#define DD_LEGACY_MESSAGE_TAG 0在导入Cocoalumberjack或添加#define DD_LEGACY_MESSAGE_TAG 0或添加-DDD_LEGACY_MESSAGE_TAG=0中xcode Project中的其他c flags /其他_cflags 。
Cocoalumberjack还使用Swift-Log的后端实施来运输。只需将Cocoalumberjack作为SPM目标的依赖性添加(请参见上文),也将CocoaLumberjackSwiftLogBackend产品添加为目标的依赖性。
然后,您可以将DDLogHandler用作Swift-Log的后端,将所有消息转发到Cocoalumberjack的DDLog 。您仍将通过DDLog配置所需的记录仪和日志格式器,但是使用Swift-Log的Logger编写日志消息。
在您自己的日志格式化器中,您可以使用DDLogMessage上的swiftLogInfo属性来检索通过Swift-Log记录的消息的详细信息。
要与Cocoalumberjack一起使用Swift-Log,请查看以下代码段,以查看如何开始。
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它的概念与其他流行的记录框架(例如Log4J)相似,但是专门为Objective-C设计的,并利用了诸如多线程,Grand Central Dispatch(如果可用),无锁原子操作以及Objective-C运行时的动态性质等功能。
在大多数情况下,它的数量级比NSLOG快。
在您的应用程序启动时,它只需要一行即可配置Lumberjack。然后,只需用ddlog语句替换您的NSlog语句,仅此而已。 (并且ddlog宏具有与NSlog完全相同的格式和语法,因此非常容易。)
一个日志语句可以发送到多个记录器,这意味着您可以同时登录到文件和控制台。想要更多吗?创建自己的记录仪(很容易),然后通过网络发送日志语句。或到数据库或分布式文件系统。天空是极限。
根据需要配置您的记录。更改每个文件的日志级别(非常适合调试)。更改每个记录器的日志级别(冗长的控制台,但简洁的日志文件)。每XCode配置更改日志级别(详细的释放,但简洁的发行版)。将您的日志语句从发布构建中汇总出来。自定义应用程序的日志级别数量。添加您自己的细粒度记录。在运行时动态更改日志级别。选择如何和何时滚动日志文件。将日志文件上传到中央服务器。压缩存档的日志文件以保存磁盘空间...
当前版本的伐木工人需要:
根据应用程序商店的应用隐私详细信息,Apple要求应用程序开发人员提供有关其数据收集的信息,美国SDK维护者必须为其提供相同的数据。
默认情况下,Cocoalumberjack不会自行收集任何数据。
请参阅我们的数据收集实践列表。
Cocoalumberjack是一个记录框架,可以轻松将这些日志发送到不同的平台。
这就是为什么如果应用程序开发人员将任何敏感数据包含在其日志消息中,则收集数据可能很容易发生。
重要说明:应用程序开发人员对通过我们的记录系统收集的任何敏感数据完全负责!
因此,您必须遵守Apple的隐私详细信息策略(如上所述),并记录收集用户数据的方式。由于可以通过可可菌Jack间接收集数据的方案数量很大,因此作为应用程序开发人员,您可以正确查看您的应用程序代码并确定这些情况。我们可以做的帮助是通过我们的框架提高人们对潜在数据收集的认识。
私人数据包括但不限于:
示例: DDLogInfo("User: (myUser)")将将myUser信息添加到日志中,因此,如果将这些信息转发到第三方或通过电子邮件发送,则可能有资格作为数据收集。