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ログも出力されるようになる。