2015-06-12 2 views
2

Я пытаюсь настроить 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 («привет»)

ответ

1

Почему бы вам не попробовать настроить вручную без включения YML-конфигуратора, который работал для меня

+0

Спасибо, я попробую его вручную. – Niroj

Смежные вопросы