2011-03-03 67 views

回答

24

正如Zoul所說,你可以在組織者那裏獲得它們。但在此之前,例如,您應該告訴應用程序將日誌存儲在「文檔」文件夾中。這樣,當你在組織者,提取應用程序數據,你會在那裏找到日誌。

現在,爲了要告訴你的應用重定向NSLog()輸出到一個文件,你應該做這樣的事情:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 

NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]]; 

NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName]; 

freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); 

最後一句話是實際輸出重定向之一。

所以一旦你這樣做了,你的應用程序日誌將被存儲在應用程序的文檔文件夾中。

難道你不知道如何提取應用程序數據嗎? Here你會發現。

我希望它能幫助你。

+0

如果它對你有幫助,如果你投票贊成,這將是很好的。謝謝 –

+0

這是一個很好的解決方案,正是我們開發需要連接到其他設備並仍然允許我們收集調試日誌的應用程序所需要的。感謝Francisco。 –

4

從連接到您的機器的設備?打開Xcode Organizer(Cmd + Shift + O),單擊設備,選擇設備日誌選項卡。

+0

主辦方只顯示崩潰日誌,而我要找的是在哪裏寫的應用程序 – zohar

+2

組織者顯示在控制檯裏面也經常日誌,它具有NSLog輸出。該設備必須進行配置,並設置 - >開發人員設置 - >記錄打開。 – Double

0

您可以使用Mac中的「控制檯」應用程序查看設備中的日誌。

0

如果您在Linux上,請安裝libimobiledevice,將您的iPhone連接到您的計算機並運行idevicesyslog | grep <your app name>。這將顯示來自NSLog聲明的所有調試信息和日誌,就像Android中的LogCat一樣。這種方法的優點:

  1. 您的應用程序沒有崩潰,以便日誌可用
  2. 可以從所有進程顯示日誌,不只是你的應用程序,如果你刪除grep
  3. 全部Linux工具的過濾功能,如grep可用
相關問題