2

Android アプリを開発するときは、常に例外をログに記録します。そして、e.printStackTrace() や不要なログが出力されないようにフォーマットと戦略を標準化したいですか?

では、最善の戦略は何ですか?

Log.x(String tag, String msg, Throwable tr) to を実装しましょ Log.x(tag, msg+tr.toString())うか?

いくつかの提案を教えてください!

4

3 に答える 3

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;
    
于 2012-08-28T10:58:29.847 に答える
0

例外はエラーであるため、それらを強調するために、私は常に Android で Log.e を使用することを好みます。私は常に Log.e(LOG_TAG,e.getMessage()); を使用します。例外/スロー可能なメッセージは、短くても意味のあるものにしたいと常に思っています。Log.e(LOG_TAG,"Divide by zero error"); のような独自のログ メッセージを出力できる場合があります。

どちらがより適しているかはあなた次第です。

于 2012-08-28T08:57:07.637 に答える
0

あなたは間違いなく Log.e/w/d/i を使用したいです私はそれを別の関数呼び出しにラップして、リリースバージョンでそれらを非表示にできますが、関数呼び出しでブール定数をテストするだけです

于 2012-08-28T09:14:00.070 に答える