Log4j

Log4jをよく使うのだけど,こいつの設定は本当に分かりにくい。以下の記事とマニュアルを参考にしながらなんとか使っています。
効率的なログ出力をCommonsで実現@ITの連載)
で,先日ログに日本語を出力したら,これが文字化けしてしまった。開発用のPC上ではうまくいくのだけど,テスト用のSolarisマシンにデプロイすると文字化けする。でうまくいっている方のログファイルを見てみると,文字コードシフトJISになっている。あれ? 普通にJavaの文字列渡しているのに。
調べた結果,アペンダにはEncodingの指定ができて,これを省略するとプラットフォームのデフォルトに変換されるらしい。Solaris上ではASCIIと思われているようだ。


  
  
  
  
  
    
  		

こういう感じで明示的にエンコーディングを指定することで常にUTF-8でログをとることができるようになった。