log日誌重定向
阿新 • • 發佈:2017-12-08
text manager lena 重新 定位 arr err std 需要
)ZZLogManager 一個基本的log類,搖晃手機喚醒。
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,通過搖晃啟動。(註意:在打正式包前一定要移除或者將啟動代碼註釋掉
log日誌重定向