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,通過搖晃啟動,雙擊隱藏。ZZLogManager (注意:在打正式包前一定要移除或者將啟動代碼注釋掉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM