2012-03-05 47 views

回答

4

如果可能,是的,它是一個很好的應用程序開發實踐,但正確處理e.printStack是必要的,以防止您的應用程序的力量從無必要的例外中關閉。爲此,您可以在所有catch塊中使用Log.e(TAG, e.toString());。這將保留一些關於您的應用程序行爲的必要信息,並且您還可以輕鬆獲取有關應用程序的任何強制關閉或異常的信息。

0

它真的取決於應用程序在發佈到市場後的生命週期。

如果你不能相信你的用戶提供詳細的錯誤報告(一般來說,與工程相關的應用程序,你可以希望有些用戶能夠提供詳細的崩潰報告),那麼沒有理由臃腫的Android日誌。

另一方面,一些錯誤是heisenbugs並且在添加日誌語句後可能會消失,使它們很難找到。

這真的是一個味道問題 - 我提供了一個構建時開關,將它們包含在調試版本中,但不包含在發佈版本中。而且我通常會等到應用程序過去測試才能完全禁用調試日誌。

0

我不知道你是否必須刪除它。 如果我上傳了一個項目進入市場,我得到了同一個應用程序的2個版本。

  1. 用的println和日誌
  2. 沒有的println和日誌

刪除它們總會讓應用程序去更快一點(很少)。

0

OfCource你應該,特別是如果你的應用程序依賴很多性能(例如遊戲具有快速幀率),否則日誌的打印會消耗很多性能 正確的方法是使用一個標誌像isLoggable,如果設置爲false將不會打印日誌。

0

,他們建議您禁用日誌記錄,您可以看看here

確保停用記錄和你建立你的應用程序之前禁用調試選項 發佈。您可以通過刪除源文件中對日誌方法的調用來停用 日誌記錄。

然而,你應該保留一些日誌記錄,如打印上異常等堆棧跟蹤你可能有麻煩以後調試可能崩潰,如果你刪除它們的負載。

0

我只是創建自己的Log類併爲android.util構建包裝器方法。日誌方法,在寫入日誌之前檢查BuildConfig.DEBUG

0

要刪除的日誌類來電添加以下ProGuard的規則文件:

-assumenosideeffects class android.util.Log { 
    public static boolean isLoggable(java.lang.String, int); 
    public static int v(...); 
    public static int i(...); 
    public static int w(...); 
    public static int d(...); 
    public static int e(...); 
}