2013-10-02 32 views
1

注:我在說Ruby,不是 Rails。我可以爲每個文件/類設置Log4r日誌級別嗎?

有沒有什麼辦法可以根據它所登錄的類或文件來設置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程序包配置日誌記錄級別。

回答

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' 

然後,我根據特定類所需的級別獲取記錄器。

  • 如果我需要INFO水平記錄儀,我就用log = Log4r::Logger.get('info')
  • 如果我需要一個記錄器,帶有DEBUG水平取,我把它取使用log = Log4r::Logger.get('debug')
相關問題