Установите уровни ведения журнала в Ruby on Rails
Я использую следующий код для настройки ведения журнала в моем приложении Ruby on Rails:
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, но он, похоже, не работает. Я что-то пропустил?
Если я поставлю Rails.logger.level = 4 в моей среде .rb, он работает. Но я хотел бы настроить вещи в инициализаторах среды.
Ответы
Ответ 1
Согласно официальной документации, вы должны использовать:
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
Обновить Документы сообщают так:
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
в рабочем режиме и отладка в режиме разработки и тестирования.