logmouse - yet another slf4j android binding, for testing
以前「ここが変だよ android.util.Log」
というエントリで、android.util.Log
及びその仕様を引きずったslf4j-androidはちょっと使いづらいと書きました。
簡単に言うと、デバッグ目的でログを出すのに使うのだから、ログレベルを簡単に変えられるべきだがそうはなっていない、ということです。
で、できないならできるようにしちゃえ、ということで自分向けにslf4j-androidを書き換えましたので記録しておきます。
リソースファイルでログ出力レベルを決定できるようにしていますので、手軽に変更できるようになっています。
テストケースなどは一切書いていませんが、まあ、リリース版で使用するわけではないので…
名前はlogmouseです。logcatからの連想でつけてます。
インストール方法
MavenプロジェクトなのでMavenをセットアップしておいてください。-
yukihane/slf4j の feat/logmouse/1.7.12 ブランチをチェックアウトします(本家slf4jのv1.7.12からの派生版です)。
$ git clone -b feat/logmouse/1.7.12 https://github.com/yukihane/slf4j.git
-
slf4jディレクトリに入って一旦全部ビルドしてしまいます。
$ cd slf4j && mvn clean package
-
slf4j-androidディレクトリに入り、logmouseをmavenローカルリポジトリにインストールします。
$ cd slf4j-android && mvn install
使用方法
いつものように /app/build.gradle のdependenciesに依存関係を追加してください。compile 'com.github.yukihane.slf4j:logmouse:0.0.1-SNAPSHOT'
設定はlogmouse.propertiesに記述します。 /app/src/main/assets にファイルを置いてください。
defaultLoglevel
でデフォルトのログレベルを、log.タグ名
で各タグのログレベルを設定できます
(この辺はSimpleLoggerに合わせました)。
ログレベル値はVERBOSE,DEBUG,INFO,WARN,ERRORのいずれかになります。VERBOSEの代わりにTRACEも使えます。
この辺はslf4jとandroid標準の兼ね合いで決めました(参考)。
補足
- sl4jインタフェースで使えるロガーとしてはlogback-android があるようです。もしかしたらリリース版にはこれが使えるかもしれません(私はまだ触っていないので評価できません)。
- 少し方向性は違うのですが、ロギングをテスト版/リリース版で切り替えたいという要望に対して Timber というブロダクトもあるようです。
- なお、slf4jでリリースビルドとJUnitテストでログ出力先を変える方法は 「Android: 通常実行とJUnitテスト実行で共通のロギングコードを用いる」 に記載しています。
« (Android界隈における)MVPのM | トップページ | Android Studio 1.3RC1 で finished with non-zero exit value 1 »
この記事へのコメントは終了しました。
« (Android界隈における)MVPのM | トップページ | Android Studio 1.3RC1 で finished with non-zero exit value 1 »
コメント