&tag(Rails3/ログ出力の改善); *目次 [#w9a527b6] #contents *参考情報 [#teab3dd8] -[[Logger!!!(ログにタイムスタンプを追加する方法) - rochefort's blog:http://rochefort.hatenablog.com/entry/20100310/p1]] -[[rails3.1.1でLoggerクラスを使ってログ出力を改善するメモ - やぶろぐ:http://d.hatena.ne.jp/hellon999/20111112/1321071045]] *ログにタイムスタンプを追加する。 [#pd66bc75] -environment.rbに以下を追加。 #pre{{ class Logger class Formatter def call(severity, time, progname, msg) format = "[%s] %s %s\n" format % ["#{time.strftime('%Y-%m-%d %H:%M:%S')}", severity, msg2str(msg)] end end end }} -development.rb、production.rbなどでログ上記Loggerを使うように設定する。 #pre{{ config.logger = Logger.new(config.paths["log"].first) config.logger.formatter = Logger::Formatter.new config.logger.level = Logger::DEBUG config.colorize_logging = false }} *assetのログを非表示にする [#v5a68e34] -assetパイプラインのログが大量に表示されてうっとしい場合、以下のconfig/initializers/queit_assets.rbを作る。[[How to disable logging of asset pipeline (sprockets) messages in Rails 3.1? - Stack Overflow:http://stackoverflow.com/questions/6312448/how-to-disable-logging-of-asset-pipeline-sprockets-messages-in-rails-3-1]] #pre{{ if Rails.env.development? Rails.application.assets.logger = Logger.new('/dev/null') Rails::Rack::Logger.class_eval do def call_with_quiet_assets(env) previous_level = Rails.logger.level Rails.logger.level = Logger::ERROR if env['PATH_INFO'] =~ %r{^/assets/} call_without_quiet_assets(env) ensure Rails.logger.level = previous_level end alias_method_chain :call, :quiet_assets end end }} *ActiveRecordのSQLを表示しない [#o7941be2] -config.logger.level = Logger::INFOにすると表示されない。 -もしくはconfig/initializers/quiet_sql.rbで、loggerをnilに設定する。[[Disable Rails 3.1 SQL logging - Stack Overflow:http://stackoverflow.com/questions/7759321/disable-rails-3-1-sql-logging]] #pre{{ ActiveRecord::Base.logger = nil }}