効果的に運用したいSLF4J+Logback。

logback.xmlを自動読込されるパスに置く

Logbackは、
特定のファイル名で特定の場所に配置しておけば
自動読み込みしてくれる。

自分で設定ファイルを読み込む処理を書く手間が省けるので、
自動読込を積極的に利用する。

自動読込のルールは次の通り。

  1. クラスパス上のlogback.grovy
  2. 「1」のファイルが見つからない場合、
    クラスパス上のlogback-test.xml
  3. 「2」のファイルが見つからない場合、
    クラスパス上のlogback.xml
  4. 「3」のファイルが見つからない場合、
    BasicConfiguratorクラスの設定内容(コンソール出力)

クラスパス上なので、
Mavenの構成でいうと「src/main/resources」や「src/test/resources」の直下。
Eclipseであればソースフォルダ扱いになっているフォルダの直下でいい。

「logback.xml」の設定ファイル自体は、
自分で作成するかサンプルをコピーするなどして作成する。
作成したら、その場所へ置く。

ログレベル利用基準を明確にしておく

ログレベルはtraceが一番下でerrorが一番上ということは理解できても、
どのログ内容にはこのレベルといった基準は人によりまちまち。

なのでアーキテクチャ設定者側でしっかりとした指針を提示しておくと
開発者がいちいち迷うことなくロガーを利用できる。

参考例
ログレベル 基準
error 致命的エラーの原因を出力
warn 例外は発生してるが、システムを継続可能な場合用に出力。
info 仕様などに記載されていて規定通りにログを出力する場合に利用。
debug 開発者が自由に使用可能。ただし本番時には出力しない。
trace 開発者が自由に使用可能。ただし本番時には出力しない。

開発者個人の設定ファイルを作る

開発時にログを使用する場合、
ログの設定ファイルが1つしかないととても不便。

開発範囲の内容だけ出力したいといったように、
開発者個別で設定したいときはいくらでもある。

そんなときローカルで設定ファイルを書き換えるが、
それを誤ってコミットしてしまうこともあり、とても面倒。

そこで個人用の設定ファイルを用意する。

Logbackの自動読込のルールでは、
logback-test.xmlがデフォルトだと先に読み込まれる。

これを利用して
logback-test.xmlを開発者個人に使ってもらう。
リポジトリの管理からも除外する。

本番用には別途logback.xmlを作っておく。
このように利用すると開発者が自在にロガーを利用できることになる。

PR