logback-test.xmlを使ってログレベルを変更する
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]