私は gradle/maven 経由で slf4j-android 1.6.1-RC1 を使用しています。Log.debug を呼び出すと、エミュレータでアプリケーションを実行すると、Android Studio 0.3.5 の Logcat に何も表示されません。
楽しみのために、次のことを試しました。
private final Logger Log = LoggerFactory.getLogger(MainActivity.class);
...
Log.debug("Got this far, woohoo!");
android.util.Log.d("blah","I am here!");
Log.d の出力は Logcat に表示されましたが、Log.debug には表示されませんでした。
Log.isDebugEnabled() を確認しましたが、十分に false に設定されています。しかし、 android.util.Log.d がうまく動作するので、それは奇妙に思えます。slf4j は同じログ レベルを使用するべきではありませんか? 実際、slf4j は隠れて android.util.Log を呼び出すだけでよいのではないでしょうか?
また、Log.debug を Log.error に置き換えたところ、うまくいきました。したがって、問題は、Log.d がデバッグ イベントを発行しても、デバッグ イベントを発行すべきではないと slf4j が何らかの方法で決定したことにあるようです。
android.util.Log のように、slf4j が Android Studio の Logcat で設定されたログ レベルを尊重するようにするにはどうすればよいですか?