まとめ
- Android 環境においても、Java標準の
java.util.logging.Logger
(JUL) は使用できる。 - Android 環境での JUL経由のログは、
com.android.internal.logging.AndroidHandler
を介して、android.util.Log
に転送される。すなわち、普通に logcat に出力される。
(なお、AndroidHandler
は、dalvik.system.DalvikLogHandler
を実装している)
loggerName から TAG への変換
- JUL での loggerName は、そのままでは logcat用の TAG としては一般には長すぎる。そこで、
dalvik.system.DalvikLogging
のloggerNameToTag()
で短く切りつめられる。 - もし、JUL での作法として loggerName に FQCN (パッケージ名付きのクラス名) を指定しているのであれば、たいていの場合、TAG は loggerName の 単純名 (パッケージ名なしのクラス名) になる。
例: loggerName がcom.example.a.MyActivity
ならば、TAG はMyActivity
になる。 - ただし、loggerName として指定された FQCN の長さが 23文字以下 ならば、その FQCN が そのまま TAG になる。
- 逆に、loggerName を 単純名 に置き換えても 23文字に収まらない場合は、単純名の後ろから23文字分が TAG として採用される。
JUL の各ログレベル は、logcat の どの priority に対応するか?
JUL の各ログレベル から logcat の priority への変換は、AndroidHandler
の getAndroidLevel()
で行われている。
JUL での ログレベル | logcat での priority |
---|---|
SEVERE | ERROR |
WARNING | WARN |
INFO | INFO |
CONFIG | DEBUG |
FINE, FINER, FINEST | VERBOSE |
0 件のコメント :
コメントを投稿