2010-08-31 56 views
3

我讀過this question,它主張從Release版本中取出NSLog語句。我可以在發佈版本中保留日誌嗎?

這是可以接受的,而不是混亂主垃圾日誌,寫入到蘋果系統日誌相反,那麼它會被隱藏的主要日誌?

還是我只是過分複雜的東西?是否有任何實例記錄在發佈後在應用程序中查找錯誤時對您有用?

回答

2

我發現日誌消息我在開發過程中添加一般做的三兩件事之一:在調試

  1. 援助和測試新的,未完成的功能和代碼路徑
  2. 提供有關程序的正常運行信息如任務完成和常見錯誤情況(例如,沒有互聯網連接)。
  3. 提供關於不尋常或意外的事件,包括錯誤情況是危險的或不具體處理,軟件更新和畸形的數據從一臺服務器連接傳入或文件中的一個類別

消息,我通常刪除時的詳細信息該功能已完成,類別2中的消息I會用鏈接問題中的宏過濾掉,而類別3中的消息則會保留在發佈中。

顯然這些線條很模糊,但我認爲這歸結於尊重日誌。如果您的應用程序使用無用的信息填充它,可能會導致難以注意到來自其他應用程序的錯誤,並且會導致(小)資源消耗。

使用ASL函數記錄具有較低優先級的郵件,如debuginfo,這些郵件對大多數用戶不可見,這對於處於灰色區域的郵件來說是一個好主意。

+1

第三類消息應該是警報或出現錯誤,而不是日誌語句。有多少用戶離開控制檯運行,以防應用程序在那裏記錄失敗? – 2010-08-31 20:19:14

+1

@Peter,我記錄錯誤和警告,以便我們的崩潰處理程序(或用戶反饋提交)可以通過ASL搜索這些日誌並將它們發送給我們;用戶不必打開控制檯,但要求他們記住錯誤對話框的措辭要容易得多! – 2010-09-01 14:47:33

+1

@彼得我同意。日誌消息記錄的信息不適合或不足以呈現在用戶界面中,或記錄事件的重要性不足以在發生時告訴用戶,但可用於查找原因之後的問題。 – s4y 2010-09-01 15:48:29

2

還有this question通過將這些陳述報告出來,詢問任何性能優勢。陪審團看起來仍然沒有任何硬性數字,但傳統觀點認爲,通過將它們納入宏觀條件來消除它們。你仍然可以獲得你的調試信息,並且用戶可以獲得一個沒有混亂的應用程序。

相關問題