2016-10-11 36 views
-1

我有一個控制檯命令作爲服務。 我想記錄下,該命令是在一個名爲foo.log的日誌文件中執行的 - 並且沒有其他日誌放在那裏。控制檯命令:將數據記錄到specific文件(Symfony3和monolog)

我幾乎做到了,但是:

情況A,我得到的所有日誌,以我的specyfic文件(不僅是一個我想)在情況B

,我得到我的specyfic日誌到foo.log文件,但是當運行CONSOL命令時,我在控制檯屏幕上獲得了其他日誌。

命令文件

class A extends command 
{ 
    (...) 
    protected function execute(InputInterface $input, OutputInterface $output) 
    { 
     (...) 
     $this->logger->info('done it'); 
    } 
} 

services.yml

sender.command.fetch.and.send: 
    class: ReportsBundle\Command\SendReports 
    arguments: 
     - "@sender.reports.worker" 
     - "@logger" 
    tags: 
     - { name: console.command } 
     - { name: monolog.logger, channel: sender} 

情況A(config.yml) - 當我得到的所有日誌foo.log

monolog: 
    handlers: 
     sender: 
      type:  stream 
      path:  '%kernel.logs_dir%/foo.log' 
      channels: ~ 

情況B(config.yml)當我得到unwante屏幕d日誌

monolog: 
    channels: ['sender'] 
    handlers: 
     sender: 
      type:  stream 
      path:  '%kernel.logs_dir%/foo.log' 
      channels: sender 

不必要的日誌:

(...) 
[2016-10-11 20:48:28] doctrine.DEBUG: SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED [] [] 
[2016-10-11 20:48:28] doctrine.DEBUG: [] [] 
[2016-10-11 20:48:28] event.DEBUG: Notified event "{event}" to listener "{listener}". {"event":"console.exception","listener":"Staffim\\RollbarBundle\\EventListener\\RollbarListener::onConsoleException"} [] 
(...) 

回答

0

我相信,你只需要水平下你的詳細程度

看到documentation

# app/config/config.yml 

monolog: 
    handlers: 
     console: 
      type: console 
      verbosity_levels: 
       VERBOSITY_NORMAL: NOTICE 
      channels: sender 
+0

感謝ü爲您答覆..它告訴我,我應該看看其他處理程序。我創建了新的處理程序,將這些日誌放到不同的文件中。 – Anna

相關問題