4

Log 関数を使用して Android アプリをデバッグします。アプリのリリースが近づいており、デバッグ レベルを下げたいと考えています。ただし、これらの機能の一部を無効にする方法がわかりません。Log.v() ログを無効にしたいだけだとします。

Android doc には、コード内のログ関数呼び出しを削除するか、android::debbugable オプションを削除して false に設定する必要があると記載されています最初のオプションは、ソース コードで呼び出しをログに記録したいので (将来の更新のために)、私のニーズには合いません。2 番目のオプションはすべてのログを無効にしますが、これはリリース前のテストには適していません。

詳細 (Log.v) ログのみを無効にする方法を知っていますか?

どうもありがとう!

4

2 に答える 2

4

Proguardを使用してリリースを難読化する場合は、次のような行を入力します。

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

設定ファイルに入れると、これらのカテゴリのログがコードから削除されます。

于 2012-04-04T11:52:45.610 に答える
4

-classの独自のラッパーを作成できます。Logおそらく次のようなものです。

static class MyLog{
    private static int mLevel;
    public final static void setLevel(int level){
        mLevel = level;
    }
    public final static void v(String tag, String message){
        if( mLevel > 0 ) return;
        Log.v(tag, message);
    }
    public final static void d(String tag, String message){
        if( mLevel > 1 ) return;
        Log.d(tag, message);
    }
    public final static void i(String tag, String message){
        if( mLevel > 2 ) return;
        Log.d(tag, message);
    }
    //Same for w and e if neccessary..
}

次にMyLog.setLevel(1);、詳細ログを無効にするために使用できます (または、より高いレベルでそれらのログも無効にします)。

于 2012-04-04T11:51:02.113 に答える