导入CocoaLumberjack
pod 'CocoaLumberjack'
使用
//设置 -(void)setupLogger { ①
#if DEBUG
[DDLog addLogger:[DDASLLogger sharedInstance]]; ②
#endif
DDFileLogger fileLogger = [[DDFileLogger alloc] init]; ③
fileLogger.rollingFrequency = 60 * 60 * 24;
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[DDLog addLogger:fileLogger]; ④
}
//在一些文件中使用记录器
#if DEBUG ⑤
static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
#elsif MY_INTERNAL_RELEASE
static const DDLogLevel ddLogLevel = DDLogLevelDebug;
#else
static const DDLogLevel ddLogLevel = DDLogLevelWarn;
#end
-(void)someMethod {
DDVerbose(@"someMethod has started execution"); ⑥
//...
DDError(@"Ouch! Error state. Don't know what to do");
//...
DDVerbose(@"someMethod has reached its end state");
}
①在 application:didFinishLaunchingWithOptions: 调用这个方法。
②当连接到 Xcode 时,只在调试模式下将日志记录到 ASL。你不会希望这类日志在产品环境的设备中记录下来。
③文件日志记录器,配置为每 24 小时(rollingFrequence)创建一个新文件,同时最多允许创建 7 个文件(maximumNumberOfLogFiles)。
④注册日志记录器。
⑤将日志的级别(ddLogLevel)设置为合适的值。这里我们可以这样设置:开发阶段输出最多的细节;内部测试阶段(MY_INTERNAL_RELEASE 是一个自定义的标记)输出少量细节信息(debug level);面向终端用户的分发包只输出错误信息。
⑥记录一些信息。在 DDLogLevelVerbose 级别中,所有信息都会被记录;在 DDLogLevelWarn级别中,只有错误信息会被记录。
参考
高性能ios应用开发中文版