Как создать пользовательские уровни в log4r через yaml

У меня есть приложение Rails 4.1, использующее log4r 1.1.10, настроенное через yaml, и все работает отлично. Теперь я просто хочу добавить пользовательский уровень. Итак, в верхней части моего файла yaml я добавил семь строк после log4r_config:

log4r_config:
  pre_config:
    custom_levels:
      - INFO
      - WARN
      - ERROR
      - SERIOUS
      - FATAL
  # define all loggers ...
  loggers:

Соответствующая часть моего application.rb выглядит так:

require 'log4r'
require 'log4r/yamlconfigurator'
require File.join(File.dirname(__FILE__),"../lib/rollable_file_outputter.rb")
include Log4r
log4r_config = YAML.load_file(File.join(File.dirname(__FILE__),"log4r.yml"))
YamlConfigurator.decode_yaml( log4r_config['log4r_config'] )

Но когда я запускаю приложение сейчас, я получаю

ArgumentError: Log level must be in 0..7
/opt/thermyos.com/server/shared/bundle/ruby/2.0.0/gems/log4r-1.1.10/lib/log4r/yamlconfigurator.rb:189:in `decode_logger_common'
/opt/thermyos.com/server/shared/bundle/ruby/2.0.0/gems/log4r-1.1.10/lib/log4r/yamlconfigurator.rb:175:in `decode_logger'
/opt/thermyos.com/server/shared/bundle/ruby/2.0.0/gems/log4r-1.1.10/lib/log4r/yamlconfigurator.rb:69:in `block in decode_yaml'
/opt/thermyos.com/server/shared/bundle/ruby/2.0.0/gems/log4r-1.1.10/lib/log4r/yamlconfigurator.rb:69:in `each'
/opt/thermyos.com/server/shared/bundle/ruby/2.0.0/gems/log4r-1.1.10/lib/log4r/yamlconfigurator.rb:69:in `decode_yaml'
/opt/thermyos.com/server/releases/20141209152838/config/application.rb:23:in `<top (required)>'

Как правильно определить пользовательские уровни log4r в yaml?

1 ответ

Решение никогда не упускает уровень DEBUG. Это был просто недосмотр с моей стороны. Поскольку Log4r использует уровень отладки для записи отладочных сообщений, это очень плохо.

Другие вопросы по тегам