logback-test.xmlを使ってログレベルを変更する

·2 分で読めます

Javaにlogbackというlog4jに代わるロギングライブラリがあって、これのちょっとしたTIPS。

本番環境ではなく、ローカルマシンでの開発時のアプリケーションのlogback.xmlでは、下記のようにログレベルをdebugにしているとする。

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

で、例えばDBへのクエリをdebugレベルでログ出力している場合、人によっては「DBのクエリの出力はうざいから止めたい」というケースがたまにある。logback.xmlでレベルをdebug -> infoにしてもいいんだけど、間違ってコミットしちゃった場合に回りの人に迷惑がかかる。そういう場合はCLASSPATHが通っているところに logback-test.xml というファイルを作っておいて、上のXMLのlevelの部分を debug -> info にする。

これでlogback.xmlを直接編集しなくてもアプリケーションのログレベルをinfoにできる。具体的には

  • logbackはまずはCLASSPATH内にlogback-test.xmlがあればロードを試みる

  • ない場合はlogback.xmlをロードを試みる

という仕様になっているので(参考: Chapter3: Logback configuration & Joran)、logback-test.xml作るとこっちを先に読んでくれるというわけ。

これで自分の見たい情報にフォーカスできる。でも絶対もっとうまいやり方がありそう...

おまけ

なお、上の参考リンクに「Maven使ってて src/test/resources/ 配下の logback-test.xml は artfifactからは除外される」と書いてあったんだけど、Maven 2.2.1で試した限り除外されなかった。なんでだろう...

[tmkm-amazon]4894717166[/tmkm-amazon]