CocoaLumberjack的安裝應(yīng)該沒什么問題蚪拦,具體使用如下:
先初始化一下状原,添加輸出到控制臺(tái)和系統(tǒng)控制臺(tái)的 logger挚赊。
[DDLog addLogger:[DDTTYLogger sharedInstance]]; // Xcode控制臺(tái)
// 輸出到控制臺(tái)的可以有顏色藻三,但是依賴于XcodeColors(裝了就行)洪橘,后面講XcodeColors
[[DDTTYLogger sharedInstance] setColorsEnabled:YES];
[DDLog addLogger:[DDASLLogger sharedInstance]]; // 系統(tǒng)控制臺(tái)
輸出到文件的
NSString*path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject];
DDLogFileManagerDefault *fileManager = [[DDLogFileManager Defaultalloc] initWithLogsDirectory:path];
// 如果不指定路徑,直接 new 一個(gè)fileLogger棵帽,會(huì)把日志存到電腦資源庫的一個(gè)文件夾里(忘了具體哪 兒)熄求,日志名稱是項(xiàng)目的 BundleId + 日期,
DDFileLogger *fileLogger = [[DDFileLogger alloc] initWithLogFileManager:fileManager];
fileLogger.rollingFrequency = 3600*24; // 日志滾動(dòng)頻率逗概,單位是秒弟晚。這里每天會(huì)創(chuàng)建一個(gè)新的日志
// 日志文件的最大大小。如果在設(shè)置的刷新時(shí)間之前大小已經(jīng)滿了,就會(huì)重新創(chuàng)建一個(gè)日志卿城,時(shí)間重新計(jì)算枚钓。
fileLog.maximumFileSize=1024*1024;
[[fileLogger logFileManager] setMaximumNumberOfLogFiles:7]; // 最大日志文件數(shù)。
[DDLog addLogger:fileLogger];
輸出的調(diào)試信息格式是可以改的瑟押,比如改成這樣:
新建一個(gè)類繼承自NSObject搀捷,遵守<DDLogFormatter>協(xié)議,實(shí)現(xiàn)協(xié)議的- (NSString)formatLogMessage:(DDLogMessage)logMessage;方法多望。
- (NSString *)formatLogMessage:(DDLogMessage *)logMessage {
// 時(shí)間
NSDateFormatter *dateF = [[NSDateFormatter alloc]init];
dateF.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS";
NSString *time = [dateF stringFromDate:logMessage.timestamp];
// 文件名
NSArray *pathComponents = [logMessage.file componentsSeparatedByString:@"/"];
NSString *file = @"^No File^";
if (pathComponents.count > 0) {
file = [pathComponents lastObject];
}
NSString *newLogMessage = [NSString stringWithFormat:@"\n%@ %@ %@:%ld\n%@",time,file,logMessage.function,logMessage.line,logMessage.message];
return newLogMessage;
}
然后在添加 Logger 的時(shí)候:
PrivateLogFormatter *logFormatter = [[PrivateLogFormatter alloc] init];
[DDTTYLogger sharedInstance].logFormatter = logFormatter;
fileLogger.logFormatter = logFormatter;
這樣控制臺(tái)和文件日志的輸出格式就改了嫩舟。
XcodeColors是專門針對(duì) Xcode 控制臺(tái)輸出變顏色用的,如果不是通過插件安裝怀偷,那么需要先編譯一下家厌。具體:打開XcodeColors,command + B 編譯椎工,關(guān)掉饭于,退出 Xcode。打開終端维蒙,cd 到XcodeColors的目錄镰绎,輸入 ./update_compat.sh 執(zhí)行腳本文件。重新打開Xcode木西,會(huì)提示是否使用插件畴栖。安裝完后,需要設(shè)置環(huán)境變量
從 XcodeColors 的 TestXcodeColors 文件夾的 AppDelegate.m 中把宏定義和輸出示例代碼都復(fù)制過來八千。如果是通過插件下的吗讶,那么宏定義如下:
#define XCODE_COLORS_ESCAPE_MAC @"\033["
#define XCODE_COLORS_ESCAPE_IOS @"\xC2\xA0["
#if TARGET_OS_IPHONE
#define XCODE_COLORS_ESCAPEXCODE_COLORS_ESCAPE_IOS
#else
#define XCODE_COLORS_ESCAPEXCODE_COLORS_ESCAPE_MAC
#endif
#define XCODE_COLORS_RESET_FGXCODE_COLORS_ESCAPE @"fg;"http:// Clear any foreground color
#define XCODE_COLORS_RESET_BGXCODE_COLORS_ESCAPE @"bg;"http:// Clear any background color
#define XCODE_COLORS_RESETXCODE_COLORS_ESCAPE @";"http:// Clear any foreground or background color
#define LogBlue(frmt, ...) NSLog((XCODE_COLORS_ESCAPE @"fg0,0,255;" frmt XCODE_COLORS_RESET), ##__VA_ARGS__)
輸出示例代碼:
NSLog(@"After building the XcodeColors plugin for the first time, you MUST RESTART XCODE.");
NSLog(@"If you still don't see colors below, please consult the README.");
NSLog(XCODE_COLORS_ESCAPE @"fg0,0,255;" @"Blue text" XCODE_COLORS_RESET);
NSLog(XCODE_COLORS_ESCAPE @"bg220,0,0;" @"Red background" XCODE_COLORS_RESET);
NSLog(XCODE_COLORS_ESCAPE @"fg0,0,255;"
XCODE_COLORS_ESCAPE @"bg220,0,0;"
@"Blue text on red background"
XCODE_COLORS_RESET);
NSLog(XCODE_COLORS_ESCAPE @"fg209,57,168;" @"You can supply your own RGB values!" XCODE_COLORS_RESET);
LogBlue(@"Blue text via macro");
然后就可以輸出看效果了。
如果控制臺(tái)的輸出還是沒看到顏色恋捆,那改一下宏定義的一個(gè)地方:
這是因?yàn)?¥@照皆,算了不重要,能看到效果就行了沸停。