2010年9月1日水曜日

[Android] ログレベル設定方法

Androidでログのレベル設定方法

エミュレータと実機のログレベルがどうやらデフォルト「INFO」らしい。

確認してみると

Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == false
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true

になる。

だから以下のコードは出力されるが、

Log.d(TAG, msg); // ログレベルとは関係なく出力はされる。



以下のコードだと出力されない。

if(Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, msg); // ログレベルが「DEBUG」以上の場合、出力はされる。
}


特定ログタグのログレベル設定方法は

$ ./adb shell setprop log.tag.<your_log_tag> <level>



例えば、TAGが「BABUKUMA」の場合は

$ ./adb shell stop
$ ./adb shell setprop log.tag.BABUKUMA DEBUG
$ ./adb shell start


確認してみると

Log.isLoggable(TAG, Log.VERBOSE) == false
Log.isLoggable(TAG, Log.DEBUG) == true
Log.isLoggable(TAG, Log.INFO) == true
Log.isLoggable(TAG, Log.WARN) == true
Log.isLoggable(TAG, Log.ERROR) == true