2012-08-28 46 views
2

我們總是在開發android應用程序時記錄異常。我們想要標準化合成和策略來防止e.printStackTrace()或不必要的日誌被打印?團隊中最棒的Android日誌策略是什麼?

那麼最好的策略是什麼?

咱們落實 Log.x(String tag, String msg, Throwable tr)Log.x(tag, msg+tr.toString())

請給我一些建議!

回答

0

異常是錯誤,因此爲了突出它們,我總是喜歡在Android中使用Log.e。我總是跟Log.e(LOG_TAG,e.getMessage());.我總是希望保持我的異常/拋出的消息簡短但有意義。有時你可以打印出你自己的日誌信息,如Log.e(LOG_TAG,「除以零錯誤」);

它取決於你,更適合你。

0

你肯定要使用Log.e/W/d /我 我wrape到另一個函數調用,這樣我可以在發行版本中隱藏它們,而只是在函數調用測試的是一個布爾常量

3
  • 創建一個自定義Log類。
  • 使每類進口的這個代替android.util.Log

    public class Log{ 
    public static final boolean enableInfo  = false; 
    public static final boolean enableError  = true; 
    public static final boolean enableDebug  = true; 
    public static final boolean enableVerbose = false; 
    
    public static void i(String tag, String msg) { 
        if(enableInfo) { 
         android.util.Log.i(tag,msg); 
        } 
    } 
    public static void e(String tag, String msg) { 
        if(enableError) { 
         android.util.Log.e(tag,msg); 
        } 
    } 
    public static void e(String tag, String msg, Exception e) { 
        if(enableError) { 
         android.util.Log.e(tag,msg, e); 
        } 
    } 
    public static void v(String tag, String msg) { 
        if(enableVerbose) { 
         android.util.Log.v(tag,msg); 
        } 
    } 
    public static void d(String tag, String msg) { 
        if(enableDebug) { 
         android.util.Log.d(tag,msg); 
        } 
    } 
    

    }

  • 使用這種技術,你可以啓用和通過只是改變了常量在一個文件在整個應用程序禁用日誌,爲當您必須進行構建才能發佈應用程序等。

    public static final boolean enableInfo  = false; 
    public static final boolean enableError  = true; 
    public static final boolean enableDebug  = true; 
    public static final boolean enableVerbose = false;