1

注意:我说的是 Ruby,而不是Rails。

有没有办法根据它记录的类或文件设置 Log4r 级别?

这是我当前对 Log4r 的配置:

---
log4r_config:
  loggers:
    - name: logger
      level: INFO
      outputters:
        - default
  outputters:
    - name: default
      type: StdoutOutputter
      default: true
      formatter:
        type: PatternFormatter
        date_pattern: '%H:%M:%S'
        pattern: '[%l] %d: %m'

现在假设我想调试一个类。有什么方法可以采用相同的记录器实例(因为我想使用相同的模式格式)并将其设置为不同的级别(DEBUG),而不会影响文件外部的级别?

我想我不能从代码中做到这一点,但是是否有一种配置机制可以设置每个文件/类的级别?

作为参考,在 JBoss 应用服务器中,可以为每个 Java 包配置日志记录级别。

4

1 回答 1

0

现在,我正在为我需要的每个日志级别使用一个带有单独记录器的解决方法。目前,我只需要级别DEBUGINFO. 我的 log4r.yml 然后看起来像这样:

---
log4r_config:
  loggers:
    - name: debug
      level: DEBUG
      outputters:
        - default
    - name: info
      level: INFO
      outputters:
        - default
  outputters:
    - name: default
      type: StdoutOutputter
      default: true
      formatter:
        type: PatternFormatter
        date_pattern: '%H:%M:%S'
        pattern: '[%l] %d: %m'

然后,我根据特定类所需的级别获取记录器。

  • 如果我需要一个带有 level 的记录器INFO,我会使用它来获取它log = Log4r::Logger.get('info')
  • 如果我需要一个带有 level 的记录器DEBUG,我会使用它来获取它log = Log4r::Logger.get('debug')
于 2013-10-02T22:19:39.740 回答