2017-01-09 32 views
0

我已經定義了一個服務來處理具有特定文本(例如「匹配的路由」等)的記錄日誌記錄。我成功地將這些記錄寫入一個單獨的文件。Symfony 2 - 不要將日誌記錄傳遞給下一個處理程序

但是,我想要避免的是將它們第二次寫入主日誌文件。我嘗試用一​​個頻道標記我的服務,並告訴主流日誌忽略該頻道,但在我看來,它不起作用,因爲本質上,主流日誌處理程序匹配的全部內容

有關如何進行的任何建議?

編輯:這就是我目前所面對的:

monolog: 
    channels: ['noise'] 
    handlers: 
     eliminate_noise_logger: 
      type: service 
      id: common.eliminate_noise_logger 
      channels: ['noise'] 

     streamed: 
      type: stream 
      level: info 
      path: "%kernel.logs_dir%/%kernel.environment%.log" 
      formatter: monolog.formatter.session_request 
      channels: ['!noise'] 

     console: 
      type: console 
      verbosity_levels: 
       VERBOSITY_NORMAL: INFO 

我的服務定義:

common.eliminate_noise_logger: 
    class: path\to\class 
    arguments: ["%kernel.logs_dir%/%kernel.environment%.noise.log", ["str1", "str2", "str3"]] 
    tags: 
     - { name: monolog.logger, channel: noise } 

回答

0

這是我該怎麼辦

#config.yml 
monolog: 
    use_microseconds: false 
    channels: ['secondary'] 
    handlers: 
     main: 
      path: %kernel.logs_dir%/%kernel.language%/%kernel.environment%.log 
      type   : fingers_crossed 
      action_level : error 
      handler  : nested 
      channels  : ['!secondary'] 
     secondary: 
      type: rotating_file 
      max_files: 10 
      path: %kernel.logs_dir%/%kernel.language%/%kernel.environment%.secondary.log 
      level: info 
      channels: [secondary] 
+0

@CarlAnderson難道它解決了你問題? – OlivierC

+0

我給了它一個去,它不起作用 - 有可能我有其他的東西是相互衝突的。我無法確切記得結果是什麼,但我知道主日誌文件繼續得到我想要的東西被濾除。 –

+0

你有沒有嘗試第二個處理程序名爲secondary(而不是secondary_channel)?這是我剛剛看到的錯字複習我的答案 – OlivierC

相關問題