Androidのログについて

Android

Log.*()

メソッドでlogcatにログを出力することができる。
でも、何も考えずに上のメソッドを呼ぶと、すべてのレベルのログが出力されてしまう。

というわけで、logcatに出力するログレベルを制御するためのUtilityクラスを
書いてみた。


public class Utils {

private static final String TAG = "hoge";

public static void log_e(String msg) {
if (isLoggable(Log.ERROR)) {
Log.e(TAG, msg);
}
}

public static void log_w(String msg) {
if (isLoggable(Log.WARN)) {
Log.w(TAG, msg);
}
}

public static void log_i(String msg) {
if (isLoggable(Log.INFO)) {
Log.i(TAG, msg);
}
}

... 以下略

private static boolean isLoggable(int level) {
return Log.isLoggable(TAG, level);
}
}

アプリ全体を1つのtagで統一するなら、これで十分。

デフォルトのログレベルはINFOなので、DEBUG、VERBOSEログは無視される。
adbコマンドで

adb shell setprop log.tag.

とすれば、出力するログレベルを変更できる。
たとえば、

adb shell setprop log.tag.hoge DEBUG

とすれば、DEBUGログも出力されるようになる。