首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用yml配置器的Log4r :日志消息不包括跟踪

使用yml配置器的Log4r :日志消息不包括跟踪
EN

Stack Overflow用户
提问于 2015-06-12 11:52:15
回答 1查看 170关注 0票数 2

我正在尝试用yml配置文件配置log4r。所有内容都按照文档配置,但日志消息不包括class_name或跟踪。但是,在没有yml的手动配置下,它可以很好地工作,但是由于它不能提供配置记录器的灵活性,所以我不能这样做。根据文档log4r配置,记录器应该包括

追踪:真

我添加了跟踪: true,from config,以及logger实例。但这不管用。格式化程序模式中的%C输出所用记录器的名称,即:

代码语言:javascript
复制
logger = Log4r::Logger["development"]

以格式提供日志消息。

代码语言:javascript
复制
150612 17:05:25 [development] DEBUG: hello there

我的config.rb

代码语言:javascript
复制
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课

代码语言:javascript
复制
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(“你好”)

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 05:03:42

为什么不尝试手动配置,而不包括YML配置器,这对我有用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30802415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档