2010-08-23 27 views
1

Hello Fellow計算機人!在Cocoa中打印錯誤文件/ Objective-C

任何人都願意幫助將我的感激;)

只是想知道什麼是印刷錯誤,最好的辦法到一個文件,即所以,如果我的可執行文件崩潰,我能有什麼事的記錄。

這將是可可,目標C或C

謝謝,

埃裏克

PS。我希望我的問題不是太籠統或模糊。如果您需要澄清,請讓我知道。

回答

2

如果您的應用程序崩潰,它會自動將崩潰日誌寫入~/Library/Logs/CrashReporter。崩潰日誌將包含許多有用的信息,包括堆棧跟蹤和註冊表狀態。您無需執行任何操作即可啓用此功能。

對於不會導致崩潰的其他錯誤消息,可以使用NSLog將信息寫入應用程序的日誌文件,該文件存儲在~/Library/Logs處。日誌消息將被添加一個時間戳。默認情況下,NSLog寫入全局控制檯日誌,但該行爲可由setting STDERR_FILENO進行修改。

+0

謝謝@mipadi。但我假設/ Logs/CrashReporter中的信息也會從我不想要的機器上的其他應用程序獲取信息。理想情況下,來自我的應用程序的錯誤將位於我的應用程序創建的獨特文件中,並且我可以讓用戶發送給我。你懂我的意思嗎? – 2010-08-23 18:10:27

+1

是的。 '〜/ Library/Logs/CrashReporter'中每個應用程序都有單獨的崩潰日誌(實際上是每個應用程序的每次崩潰)。默認情況下'NSLog'打印到全局控制檯日誌,但可以通過設置'STDERR_FILENO'來修改。 – mipadi 2010-08-23 18:19:02

+1

你不能*設置* STDERR_FILENO,因爲它是一個常量。但是,您可以在其上添加另一個文件描述符,這就是您重定向自己的stderr的方式。 – 2010-08-23 19:04:12