Я пытаюсь настроить log4r с помощью файла конфигурации yml. Все настроено в соответствии с документом, но сообщение журнала не включает имя_класса или трассировку. Однако он отлично работает с ручной настройкой без yml, но поскольку он не обеспечивает гибкость настройки регистратора, я не могу этого сделать. Согласно документу, log4r config, регистратор должен включать в себя след сLog4r с помощью yml-конфигуратора: сообщение журнала не включает трассировку
следа: истинный
Я добавил след: от истинного конфигурации, а также от экземпляра регистратора. Но это не работает. % C в форматировочной шаблон выводит имя регистратора, используемого вместо т.е.
logger = Log4r::Logger["development"]
выдает сообщение войти в формате
150612 17:05:25 [development] DEBUG: hello there
Мой config.rb
application_config:
# define all pre config ...
pre_config:
custom_levels:
- DEBUG
- INFO
- PRINT
- WARN
- ERROR
- FATAL
global:
level: DEBUG
trace: 'true'
root:
level: DEBUG
trace: 'true'
parameters:
- name : x
value : aaa
- name : y
value : bbb
# define all loggers ...
loggers:
- name : development
level : DEBUG
additive : 'false'
trace : 'true'
outputters:
- stderr
- logfile
- name : production
level : WARN
additive : 'false'
trace : 'true'
outputters:
- logfile
# define all outputters (incl. formatters)
outputters:
- type : StdoutOutputter
name : stderr
level : DEBUG
formatter:
date_pattern: '%y%m%d %H:%M:%S'
pattern : "%d [%c] %l: %m "
type : PatternFormatter
- type : DateFileOutputter
name : logfile
level : DEBUG
date_pattern: '%Y%m%d'
trunc : 'false'
dirname : "logs"
filename: "development.log"
formatter :
date_pattern: '%y%m%d %H:%M:%S'
pattern : '%d %C %l: %m'
type : PatternFormatter
и мой logger.rb класс
require 'log4r'
require 'log4r/yamlconfigurator'
require 'log4r/outputter/datefileoutputter'
require 'log4r/outputter/consoleoutputters'
yml_config = YAML.load_file(File.expand_path('../../yaml/log4r.yml', __FILE__))
Log4r::YamlConfigurator.decode_yaml yml_config['application_config']
module MyLogger
def ms_logger
Log4r::YamlConfigurator['class_name']= class_name
return @ms_logger if @ms_logger
@ms_logger = Log4r::Logger["environment"]
@ms_logger.trace = true
@ms_logger
end
end
Я включил модуль в классе, где мне нужно, чтобы добавить регистратор и называется методом логгер
ms_logger.info («привет»)
Спасибо, я попробую его вручную. – Niroj