こちらの記事で書いたようにlog4jからlogbackへの
移行は意外と簡単です
でもいくつかはまった点があったのでメモしときます
・ファイルレイアウト設定用のlogback.xmlについて
この記事で書きましたがlog4jでは普通に使えていた「(」「)」が
logbackでは特殊記号として扱われるためそのままログに
出力したい場合はエスケープが必要
・ログの出力レベルについて
log4jではログレベルには以下のものがあります
trace
debug
info
warn
error
fatal
一方logbackのログレベルは以下のものになります
trace
debug
info
warn
error
off
logbackにはfatalというログレベルがありません
jcl-over-slf4j-x.x.x.jarやlog4j-over-slf4j-x.x.x.jarを使用すると
commons-loggingやlog4jのログ系クラスと同じインタフェースの
ラッパークラスが用意されます
なので一応ログ出力用のfatalメソッドも存在しますが
logbackでログ出力する際にはerrorメソッドと
同様の振る舞いとなります
ログレベルがerrorの場合にメッセージが
errorレベルでログ出力されます
log4j.xmlと同じ感覚でlogback.xmlに
ログレベルとしてfatalを設定してしまうと
logbackのデフォルトログ出力レベルである
debugレベルでログが出力されるようになります
logbackは先ほどの6個のログレベル以外の文字列が
ログレベルに設定された場合はdebugレベルで動作します
なので、既存のアプリが
errorとfatalでログの出力を分けていた場合は
ログレベルの見直しが必要となってしまいます
ちなみにlogbackのログレベルoffは
ログ出力が一切されなくなります
移行は意外と簡単です
でもいくつかはまった点があったのでメモしときます
・ファイルレイアウト設定用のlogback.xmlについて
この記事で書きましたがlog4jでは普通に使えていた「(」「)」が
logbackでは特殊記号として扱われるためそのままログに
出力したい場合はエスケープが必要
・ログの出力レベルについて
log4jではログレベルには以下のものがあります
trace
debug
info
warn
error
fatal
一方logbackのログレベルは以下のものになります
trace
debug
info
warn
error
off
logbackにはfatalというログレベルがありません
jcl-over-slf4j-x.x.x.jarやlog4j-over-slf4j-x.x.x.jarを使用すると
commons-loggingやlog4jのログ系クラスと同じインタフェースの
ラッパークラスが用意されます
なので一応ログ出力用のfatalメソッドも存在しますが
logbackでログ出力する際にはerrorメソッドと
同様の振る舞いとなります
ログレベルがerrorの場合にメッセージが
errorレベルでログ出力されます
log4j.xmlと同じ感覚でlogback.xmlに
ログレベルとしてfatalを設定してしまうと
logbackのデフォルトログ出力レベルである
debugレベルでログが出力されるようになります
logbackは先ほどの6個のログレベル以外の文字列が
ログレベルに設定された場合はdebugレベルで動作します
なので、既存のアプリが
errorとfatalでログの出力を分けていた場合は
ログレベルの見直しが必要となってしまいます
ちなみにlogbackのログレベルoffは
ログ出力が一切されなくなります