Как создать пользовательские уровни в 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 использует уровень отладки для записи отладочных сообщений, это очень плохо.