2012-08-03 63 views
0

我試圖用一個日誌機制如下:symfony 2中的渠道是什麼?

log_handler: 
    class: %monolog.handler.stream.class% 
    arguments: [ %kernel.logs_dir%/%kernel.environment%.yourFileName.log ] 


logger: 
class: %monolog.logger.class% 
    arguments: [ nameOfLoggingChannel ] 
    calls: [ [pushHandler, [@log_handler]] ] 

但是我的應用程序crapping瞭解析「nameOfLoggingChannel」。那是什麼?有人可以提供一些指導嗎?

回答

2

這只是一個名字。它將被包含在該記錄器記錄的消息中。從the docs引用:

通道是識別記錄與應用程序的哪個部分相關的好方法。這在大型應用程序中很有用(並且在Symfony2中由MonologBu​​ndle使用)。然後,您可以輕鬆地通過日誌文件進行grep,以過濾此日誌記錄或該類型的日誌記錄。

使用具有相同處理程序的不同記錄器可以通過保持相同的處理程序(例如使用單個日誌文件)來識別發佈記錄的記錄器(通過通道名稱)。

<?php 

use Monolog\Logger; 
use Monolog\Handler\StreamHandler; 
use Monolog\Handler\FirePHPHandler; 

// Create some handlers 
$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG); 
$firephp = new FirePHPHandler(); 

// Create the main logger of the app 
$logger = new Logger('my_logger'); 
$logger->pushHandler($stream); 
$logger->pushHandler($firephp); 

// Create a logger for the security-related stuff with a different channel 
$securityLogger = new Logger('security'); 
$securityLogger->pushHandler($stream); 
$securityLogger->pushHandler($firephp);