1、重定向:
我們在使用NSLog(@"hahaha") 時,實質是將“hahaha”寫入到一個系統默認位置的log文件中,然后控制台通過實時獲取這個文件的內容進行顯示打印信息。
但有時我們希望不需要鏈接xcode在手機上直接查看日志信息,這個時候我們就需要將log日志的位置調整到我們想要的指定位置。
好處:
這樣調整的好處是我們可以自定義一個textview來讀取log日志內容,通過某種方式觸發(比如搖晃),來將實時的日志直接像是到手機上。
也可以通過后台接口上傳log日志,收集log信息。
壞處:
一旦log日志重定向后,在鏈接xcode進行調試時,xcode就不會再打印log信息。(我猜測應該是xcode找不到log日志文件了)
但是可以通過關閉重定向代碼,重新編譯讓其恢復原來的位置,這樣xcode就可以再次顯示log日志內容了。
2、方法:
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *document = [path objectAtIndex:0]; NSString *fileName = [NSString stringWithFormat:@"drz.log"]; NSString *logPath = [document stringByAppendingPathComponent:fileName]; NSFileManager *defaulManager = [NSFileManager defaultManager]; [defaulManager removeItemAtPath:logPath error:nil]; freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);//log freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);//error
3、寫了一個簡單的view,通過搖晃啟動,雙擊隱藏。ZZLogManager (注意:在打正式包前一定要移除或者將啟動代碼注釋掉)