2008年3月12日水曜日

aptanaのログの文字化け対策

aptana(rad rails,eclipse plugin等)でrails開発をしている方。
コンソールビューに出力されるログが文字化けして、お困りではないでしょうか。
(win環境)

これまでは、ログファイルをtail、ソースをsjisで書くなどあまりスマートではない方法で
なんとか誤魔化してきましたが、ついにloggerをいじってやりました。

適用(注:rails2.0のみです。。。)
ソースをRAILS_ROOT/libに配置
RAILS_ROOT/config/environments/development.rbに以下追記

RAILS_DEFAULT_LOGGER = CharsetableLogger.new(config.log_path, CharsetableLogger.const_get(config.log_level.to_s.upcase), 's')

解説
rails2.0のデフォルトlogger ActiveSupport::BufferedLoggerを継承
:charsetアトリビュート追加
initializeの引数にcharset追加
ログ出力時に:charsetに従って、出力を変更
RAILS_DEFAULT_LOGGERにロガーを指定
RAILS_DEFAULT_LOGGERについてはRails::Initializer.initialize_logger()あたりを参照