iOS第三方庫-CocoaLumberjack-DDLog 使用
原文地址: http://blog.sina.com.cn/s/blog_7b9d64af0101kkiy.html
大概需要三個步驟:
一、安裝xCode擴充套件外掛XcodeColors。
二、引入第三方庫CocoaLumberjack。
三、修改NSLog為DDLog方式。
一、安裝xCode擴充套件外掛XcodeColors
1.下載地址:https://github.com/robbiehanson/XcodeColors
2.下載完成後,開啟XcodeColors專案,編譯即可。它會在你的電腦中安裝插XcodeColors.xcplugin。具體路徑在:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin(可以去瞅一眼)。
3.退出xCode,重新開啟。
4.執行TestXcodeColors專案,嘗試,是否安裝成功。
二、引入第三方庫CocoaLumberjack。
1.下載DDLog。下載地址:https://github.com/CocoaLumberjack/CocoaLumberjack
2.將DDLog新增到你的專案中。
三、修改NSLog為DDLog方式。
這一步,其實很簡單,主要是弄懂DDLog是如何使用的。
下載地址裡,有詳細說明,在這裡,就簡單的說一下吧。
1.初始化DDLog。
DDLog:基礎類,必須引入的。
DDASLLogger:支援將除錯語句寫入到蘋果的日誌中。一般正對Mac
DDTTYLogger:支援將除錯語句寫入xCode控制檯。我們即使要用它。可選。
DDFileLogger:支援將除錯語句寫入到檔案系統。可選。
2.DDLog日誌種類。
DDLog的輸出級別預設提供以下若干種:
DDLogError:定義輸出錯誤文字
DDLogWarn:定義輸出警告文字
DDLogInfo:定義輸出資訊文字
DDLogDebug:定義輸出除錯文字
DDLogVerbose:定義輸出詳細文字
提供的日誌級別為:
LOG_LEVEL_ERROR:只顯示錯誤日誌。
LOG_LEVEL_WARN:包括:LOG_LEVEL_ERROR
LOG_LEVEL_INFO
LOG_LEVEL_DEBUG:包括:LOG_LEVEL_INFO
LOG_LEVEL_VERBOSE:包括:LOG_LEVEL_DEBUG
LOG_LEVEL_OFF:關閉日誌
3.使用DDLog.
直接貼程式碼:
static const int ddLogLevel = LOG_LEVEL_VERBOSE;// 定義日誌級別
[DDLog addLogger:[DDTTYLogger sharedInstance]];// 初始化DDLog日誌輸出,在這裡,我們僅僅希望在xCode控制檯輸出
[[DDTTYLogger sharedInstance] setColorsEnabled:YES];// 啟用顏色區分
DDLogError(@"錯誤資訊"); // 紅色
DDLogWarn(@"警告"); // 橙色
DDLogInfo(@"提示資訊"); // 預設是黑色
DDLogVerbose(@"詳細資訊"); // 預設是黑色
以上是最簡單的應用,當然,可以自定義每種日誌的顏色,看需求吧。
[DDLog addLogger:[DDASLLogger sharedInstance]];// 如果需要,可以新增其他的日誌輸出支援
[[DDTTYLogger sharedInstance] setForegroundColor:[UIColor blueColor]backgroundColor:nil forFlag:LOG_FLAG_INFO];// 可以修改你想要的顏色
日誌顏色 如果沒有正確顯示 可參照這篇文章設定 http://www.w2bc.com/Article/74050 這個框架的好處之一就是它的靈活性,如果你還想要你的日誌語句寫入到一個檔案中,你可以新增和配置一個file logger:_fileLogger = [[DDFileLoggeralloc] init];
_fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
_fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
[DDLogaddLogger:_fileLogger];
/**
* 獲得系統日誌的路徑
**/
-(NSArray*)getLogPath
{
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * logPath = [docPath stringByAppendingPathComponent:@"Caches"];
logPath = [logPath stringByAppendingPathComponent:@"Logs"];
NSFileManager * fileManger = [NSFileManager defaultManager];
NSError * error = nil;
NSArray * fileList = [[NSArray alloc]init];
fileList = [fileManger contentsOfDirectoryAtPath:logPath error:&error];
NSMutableArray * listArray = [[NSMutableArray alloc]init];
for (NSString * oneLogPath in fileList)
{
if([oneLogPath characterAtIndex:0 ] == 'l')
{
NSString * truePath = [logPath stringByAppendingPathComponent:oneLogPath];
[listArray addObject:truePath];
}
}
return listArray;
}
參考 文章連結 http://blog.csdn.NET/tianyitianyi1/article/details/50135241