准备源代码
下载资源
我下载的CocoaLumberJack
版本是3.4.2
,
资源下载地址。
编辑源代码
-
解压资源文件
在 mac 的终端中使用命令解压资源tar -zxvf CocoaLumberjack-3.4.2.zip
-
使用 Xcode 打开
-
将源码编辑成自己想要的结果后,生成静态库 ,右击静态库选择 show in finder 会发现还生成了一个
include
文件夹,这个文件夹包含了我们之后所需要的头文件。 -
将打包好的静态库引入我们的 frameWork 工程,拖入目标文件夹即可
-
编写
.PCH
文件,可以参考PCH文件的使用这篇文章,需要注意的是我们路径一定要写道xxx.pch文件这一层,中间不能省略任何目录。
日志库的使用
-
编写
.PCH
文件的内容#ifndef lbJackPch_pch #define lbJackPch_pch #import "CocoaLumberjack/CocoaLumberjack.h" #import "TriLog.h" // Include any system framework and library headers here that should be included in all compilation units. // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. #define LOG_LEVEL_DEF ddLogLevel #ifdef DEBUG static const int ddLogLevel = DDLogLevelDebug; #else static const int ddLogLevel = DDLOgLevelInfo; #endif #endif /* lbJackPch_pch */
-
初始化日志配置
// TriLog.h #ifndef TriLog_h #define TriLog_h #import "CocoaLumberjack/CocoaLumberjack.h" /* * 方法 * */ @interface TriLog : NSObject +(void) initLog; +(void) EnterLog:(NSString *)className funcName:(NSString *)funcName; +(void) ExitLog:(NSString *)className funcName:(NSString *)funcName; @end #endif /* TriLog_h */
// TriLog.m #import <Foundation/Foundation.h> #import "TriLog.h" #import "CocoaLumberjack/CocoaLumberjack.h" @implementation TriLog +(void) initLog { // 1. TTY = Xcode 控制台 [DDLog addLogger:[DDTTYLogger sharedInstance]]; // 2. ASL = System Logs 苹果系统日志 (基本不需要,放开注释会打印两条一摸一样的日志) // [DDLog addLogger:[DDASLLogger sharedInstance]]; // 3. 本地日志文件 DDFileLogger * fileLogger = [[DDFileLogger alloc] init]; fileLogger.rollingFrequency = 60 * 60 * 24; //每 24h 创建一个新文件夹 fileLogger.logFileManager.maximumNumberOfLogFiles = 7; //最多允许创建 7 个文件夹 [DDLog addLogger:fileLogger]; DDLogInfo(@"CocoaLumberjack init complete"); } +(void) EnterLog:(NSString *)className funcName:(NSString *)funcName { DDLogInfo(@"enter class=[%@] func=[%@]",className, funcName); } +(void) ExitLog:(NSString *)className funcName:(NSString *)funcName { DDLogInfo(@"exit class=[%@] func=[%@]",className, funcName); } @end