如何在symfony2中的monolog日志记录中定义通道和级别

Ran*_*ngh 5 php symfony doctrine-orm

有没有办法可以在symfony2中的monolog中定义我的自定义级别.

我这样做

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

然后在数据库中我添加了这个.

频道是app和水平500

有没有办法做到这一点

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

这样我就可以在数据库中使用单独的东西进行报告和查看

Emi*_*aos 13

对于MonologBu​​ndle版本2.4及更高版本(注意,MonologBu​​ndle的发布周期不再与symfony同步),您现在可以通过配置非常简单地定义新通道,而无需定义服务.

monolog:
    channels: ["my_channel"]
Run Code Online (Sandbox Code Playgroud)

现在只需在控制器中为新通道获取自动创建的记录器:

$logger = $this->get('monolog.logger.my_channel');
$logger->info('somelogcontent');
Run Code Online (Sandbox Code Playgroud)

通过使用适当的方法定义消息级别.看看到LoggerInterface看到所有测井方法(这确实是由独白实现).这里提到一些级别:

$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');
Run Code Online (Sandbox Code Playgroud)

我知道老问题,但MonologBundle ~2.4应该提到这个新功能.


Wil*_*and 5

根据Monolog文档,频道与记录器相关联,记录器的名称基本上就是您的频道.这意味着您无法在给定的记录器中指定其他通道,但可以使用不同的通道创建新的记录器.

级别只是数字和常量,因此您可以创建自己的.使用正确的格式化程序,您将获得与您的自定义级别对应的字符串.