Rails3 系のロギング設定

Pocket
LINEで送る

この記事の所要時間: 39

Rails のデフォルトのロガーだとログレベルだとか日時が出力されないのでログとしてあまり意味がありません。

config/environment.rb の一番最後に以下の記述を追加してください。

[code lang=”ruby”]
class Logger
class Formatter
def call(severity, time, progname, msg)
format = "[%s #%d] %5s — %s: %sn"
format % ["#{time.strftime(‘%Y-%m-%d %H:%M:%S’)}.#{‘%06d’ % time.usec.to_s}",
$$, severity, progname, msg2str(msg)]
end
end
end
[/code]

Rails 3.0 系の場合

config/environments/development.rb に以下の記述を含めます。

[code lang=”ruby”]
config.logger = Logger.new(paths.log.paths[0])
config.logger.formatter = Logger::Formatter.new
config.logger.datetime_format = "%Y-%m-%d %H:%M:%S"
config.logger.level = Logger::DEBUG
config.colorize_logging = false
[/code]

Rails 3.1 系の場合

3.1 系の場合は上の書き方だと deprecation warning が発生します。

$ rails server
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
DEPRECATION WARNING: Accessing paths using dot style as in `config.paths.app.controller` is deprecated. Please use `config.paths["app/controller"]` style instead. (called from exist? at /home/noguchi/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/logger.rb:541)

代わりに次の記述をしてください。

[code lang=”ruby”]
config.logger = Logger.new(config.paths["log"].first)
config.logger.formatter = Logger::Formatter.new
config.logger.datetime_format = "%Y-%m-%d %H:%M:%S"
config.logger.level = Logger::DEBUG
config.colorize_logging = false
[/code]

結構しんどい。

参考

Rails3.1.0へのupgrade方法 – うんたらかんたら日記

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP

%d人のブロガーが「いいね」をつけました。