其實(shí)某種程度上來說众弓,log是一門藝術(shù)业簿,而從輸出log上往往也能判斷程序員的水平。新手往往都很可愛批狱,NSLog(@”Hello World”)會(huì)是不變的模式裸准。不得不承認(rèn)這樣的輸出如果在恰當(dāng)?shù)臅r(shí)候也能一擊致命,但是它所能帶給我們的信息量實(shí)在太少了赔硫。水平再高一點(diǎn)的程序員大概會(huì)在關(guān)鍵事件的時(shí)候在保證代碼通用性的前提下使用諸如
__func__
之類的東西監(jiān)測程序流程炒俱。高級程序員在log方面就會(huì)顯得大巧若拙,也許會(huì)把整個(gè)代碼流的行為都進(jìn)行l(wèi)og爪膊,而不漏掉任何一個(gè)細(xì)節(jié)权悟,包括所有的內(nèi)部狀態(tài)、各種事件推盛、異常等峦阁,完全受掌控的代碼和預(yù)期中的程序行為是他們成功的關(guān)鍵。而傳說中的大牛級人物可能把更多的注意力放在線程耘成,網(wǎng)絡(luò)等時(shí)序上可能出錯(cuò)的地方榔昔,無謂的內(nèi)存釋放或是某個(gè)超時(shí)的網(wǎng)絡(luò)請求都不會(huì)遺漏驹闰。
—OneV’s Den
NSLogger是一款強(qiáng)力的日志記錄和分析工具,其強(qiáng)大的功能撒会,可以完全替代Xcode自帶的Debugger疮方,本文將介紹一些其主要特點(diǎn)和用法。git地址:https://github.com/fpillet/NSLogger
安裝
NSLogger由兩部分組成茧彤,一是需要加入工程中的組件代碼骡显,二是查看和管理日志的Mac客戶端。組件代碼可通過CocoaPods安裝曾掂,也可通過手動(dòng)添加(手動(dòng)添加需要引入CFNetwok.framework和SystemConfiguration.framework)惫谤。Mac客戶端可以從上面的地址中安裝,NSLoggerViewer實(shí)際運(yùn)行圖:
特點(diǎn)
- 標(biāo)簽輸出
- 自定義優(yōu)先級
- 直接輸出圖片
- 多線程標(biāo)記
- 時(shí)序控制
- 遠(yuǎn)程記錄
配置使用
- 1 局域網(wǎng)使用
客戶端與桌面服務(wù)端在同一個(gè)局域網(wǎng)下珠洗,日志會(huì)自動(dòng)發(fā)送到服務(wù)端溜歪;但是為了避免同一個(gè)局域網(wǎng)下有多個(gè)服務(wù)端,可以用下面的方法避免:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//在應(yīng)用啟動(dòng)時(shí)調(diào)用其定義的宏
LoggerSetupBonjourForBuildUser();
return YES;
}
- 2 TCP連接監(jiān)聽
客戶端可以向指定的IP地址發(fā)送日志具體代碼如下:
LoggerSetViewerHost(NULL, (__bridge CFStringRef)@"你的Mac端IP", (UInt32)50000);
然后Mac端 Preferences->Network 打開Listen for loggers on TCP port 端口和客戶端填一致许蓖;
使用的時(shí)候在PCH文件導(dǎo)入下方頭文件就可以使用蝴猪,里面配置好了很多宏,具體怎么用膊爪,就看項(xiàng)目具體需求就可以了自阱。
#import <NSLogger/NSLogger.h>