次のコードを使用して、Ruby on Rails application:
environment.rb:
Rails.logger = Logger.new(STDOUT)
class Logger
def format_message(severity, timestamp, progname, msg)
"#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n"
end
end
私は今を使用して警告するようにログレベルを設定しようとしています
config.log_level = :warn
私のproduction.rbにありますが、うまくいかないようです。ここに何かが足りませんか?
Environment.rbにRails.logger.level = 4を入れると、動作するようです。しかし、私は私の環境イニシャライザーで物事を構成したいと思います。
公式ドキュメント によると、以下を使用する必要があります。
config.log_level = :warn # In any environment initializer, or
Rails.logger.level = 0 # at any time
どちらもうまくいかない場合は、以下を試してください。
config.log_level = Logger::WARN
それがうまくいかない場合は、試してください:
config.logger.level = Logger::WARN
注:最終的な方法は、2つの公式戦略を統合しているように見える、しかしいくつかの状況で動作します
Rails 4.0の場合、production.rb
(またはご希望の環境)のように:
# Set to :debug to see everything in the log.
config.log_level = :warn
Updateドキュメント 次のように述べます:
2.2ログレベル
メッセージのログレベルが設定されたログレベル以上の場合、何かがログに記録されたときに、対応するログに出力されます。現在のログレベルを知りたい場合は、
Rails.logger.level
方法。使用可能なログレベルは次のとおりです。
:debug
、:info
、:warn
、:error
、:fatal
、および:unknown
、それぞれ0から5までのログレベル番号に対応します。デフォルトのログレベルを変更するには、使用しますconfig.log_level = :warn # In any environment initializer, or Rails.logger.level = 0 # at any time
これは、開発中またはステージング中にログを記録したいが、不必要な情報で運用ログをあふれさせたくない場合に便利です。
デフォルトのRailsログレベルは、プロダクションモードでは
info
、開発およびテストモードではデバッグです。