2012-08-14 34 views
4

有沒有什麼辦法可以在symfony2中定義我的自定義級別?如何定義symfony2在monolog中的通道和級別

我我在數據庫中我有這樣的添加爲此

$logger->err('An error occurred');

然後。

渠道是app和水平500

有沒有辦法做到這一點

$logger->log("message",(channel),(level) 
$logger->log("Object with is 212 deleted",'DELETE',NORMAL); 

,這樣我可以在數據庫中不同的東西用於報告和查看

回答

5

按照Monolog documentation,通道綁定到記錄器,基本上記錄器的名稱是您的通道。這意味着您不能在給定的記錄器中指定另一個通道,但可以使用不同的通道創建新的記錄器。

級別只是數字和constants,所以你可以創建自己的。使用合適的格式化程序,您將獲得與您的自定義級別相對應的字符串。

+1

我明白你說什麼約60%但是,因爲我是新來的Symfony可以通過只是給我一個小代碼的例子,在那裏我可以擴展記錄器類爲新的水平 – user825904 2012-08-18 05:03:01

8

隨着版本2.4及更高版本(當心,MonologBu​​ndle的發行週期不再與symfony同步),您現在可以通過配置非常簡單地定義新頻道,而無需定義服務。

monolog: 
    channels: ["my_channel"] 

現在只是得到了在你的控制器的新通道自動創建的記錄:

$logger = $this->get('monolog.logger.my_channel'); 
$logger->info('somelogcontent'); 

消息面上被定義線槽採用適當的方法。查看LoggerInterface查看所有日誌記錄方法(確實通過monolog實現)。要提到這裏的一些級別:

$logger->info('Info message for interesting things'); 
$logger->warning('Some application warnings, but the application works'); 
$logger->error('Error which can influence the application flow/output'); 

我知道老問題,但是從MonologBundle~2.4這個新功能應該被提及。

+0

這是值得關注PSR-3的參考如何接口已實現,日誌級別的層次結構是什麼https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md – Bizmate 2015-09-23 14:25:46

相關問題