0

リリース時に Log.i/e/d 呼び出しを無効にする方法について多くの質問と回答を見た後、答えはさまざまで、proguard を使用するか、bool 値をチェックするログ ラッパーを使用します。私は実際にかなり長い間ログラッパーを使用していましたが、ログが最後に表示されなくても、いくつかの回答で StringBuilder のインスタンスが作成されていることに気付きました。

だから、私は次のアプローチを試みています:

public class Logger {

    static final boolean LOG = true;

    public static void printString(String string) {
        if (Logger.LOG) {
            Log.i("MyApp", string);
        }
    }

    public static void printStrings(String string1, String string2) {
        if (Logger.LOG) {
            Log.i("MyApp", string1 + " " + string2);
        }
    }

    public static void printObject(Object object) {
        if (Logger.LOG) {
            Log.i("MyApp", object.toString());
        }
    }

    public static void printException(Exception exception) {
        if (Logger.LOG) {
            Log.i("MyApp", exception.getLocalizedMessage());
        }
    }
}

だから私の質問は、この実装には `StringBuilder の問題がありますか? ログに記録するものの数に制限があることを認識していますが、拡張できます。私の主な範囲は、アプリ全体でログ メッセージを簡単に無効にしたり、それらをより細かく制御したりできるようにすることです。

4

0 に答える 0