2012-02-28 101 views
0

在Android上我使用android.util.Log登錄我的應用程序中,並在開發過程中我使用的是adb logcat或Eclipse來看看日誌 - 我使用它更然後調試......獲取調試日誌 - iPhone

在設備我可以從我的代碼中保存日誌文件或使用Android Market的某些應用程序來保存日誌 - 例如aLogCat

現在我可以在iPhone上做同樣的事情嗎?我可以使用NSLog(@"message");,但是我可以輕鬆地從我的應用程序中保存日誌文件並訪問它嗎?有什麼辦法嗎?

問候, 斯登

+0

我認爲這些日誌被寫入到您的應用程序不允許讀取的磁盤部分。您可以讓您的測試人員手動發送給您。我相信蘋果可能會向您發送用戶發送給他們的崩潰日誌?不確定。無論如何,它可能包含私人數據,如果您未經用戶許可將其發送到遠程服務器,您將違反蘋果的應用商店條款。 – 2012-02-28 07:09:53

回答

2

這是NSFoundation reference

的NSLog:

簡單地調用NSLogv,傳遞一個可變數目的參數。

NSLogv:

記錄一個錯誤信息給蘋果系統日誌設施(見男子3 ASL)。如果STDERR_FILENO文件描述符已被重定向到遠離默認位置或正在轉到tty,那麼它也將寫入該位置。如果您想要在其他地方直接輸出,則需要使用自定義日誌記錄工具。

因此,它只是一個將文件描述符「stderr」(2)重定向到自定義文件的問題,並且您將獲得使用NSLog在該文件中打印的所有內容。

This似乎正是你想要的。

請注意,如果你想在控制檯日誌當您連接到調試器,你可以用這周圍你的代碼,以避免在這種情況下重定向:

if (!isatty(STDERR_FILENO)) { // Not connected to any terminal 
    // your redirection code 
} 
+0

非常好 - 現在我們可以將日誌從控制檯重定向到文件並從iTunes訪問 - 非常類似於Android的方式。謝謝 – STeN 2012-02-28 09:23:37

1

您可以從Organizer->設備 - >你的設備 - >控制檯控制檯日誌。

如果這不夠強大,請考慮使用像NSLogger這樣的實用程序。

1

以前的答案是好的;如果您傾向於進行系統調用,請參閱this