Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony2中定义monolog日志记录中的通道和级别_Php_Symfony_Doctrine Orm - Fatal编程技术网

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

Php 如何在symfony2中定义monolog日志记录中的通道和级别,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,有什么方法可以让我在symfony2的独白中定义我的自定义级别吗 我是这样做的 $logger->err(“发生错误”) 然后在数据库中我添加了这个 频道为app,级别为500 有没有办法做到这一点 $logger->log("message",(channel),(level) $logger->log("Object with is 212 deleted",'DELETE',NORMAL); 因此,我可以在数据库中有单独的东西用于报告和查看根据,频道与记录器绑定,记录器的名称

有什么方法可以让我在symfony2的独白中定义我的自定义级别吗

我是这样做的

$logger->err(“发生错误”)

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

频道为
app
,级别为
500

有没有办法做到这一点

$logger->log("message",(channel),(level)
$logger->log("Object with is 212 deleted",'DELETE',NORMAL);
因此,我可以在数据库中有单独的东西用于报告和查看

根据,频道与记录器绑定,记录器的名称基本上是您的频道。这意味着您不能在给定的记录器中指定另一个通道,但可以使用不同的通道创建新的记录器

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

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

monolog:
    channels: ["my_channel"]
现在只需在控制器中为新通道获取自动创建的记录器:

$logger = $this->get('monolog.logger.my_channel');
$logger->info('somelogcontent');
通过使用适当的方法定义消息级别。查看日志,查看所有日志记录方法(实际上是由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
的新特性应该被提及。

我理解你说的60%的意思,但由于我是Symfony的新手,通常可以给我一个小的代码示例,在这里我可以扩展Logger类以达到新的级别。关于如何实现接口,值得参考PSR-3,日志级别的层次结构是什么