1. 程式人生 > >log日誌重定向

log日誌重定向

text manager lena 重新 定位 arr err std 需要

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 一個基本的log類,搖晃手機喚醒。

log日誌重定向