Yii2 Yi2解析记录器消息

Yii2 Yi2解析记录器消息,yii2,yii2-log,Yii2,Yii2 Log,我想获得日志信息,并以人类可读的格式解析它们以更新电子邮件 我目前正在使用记录器,将数据记录到数据库中,并使用 Yii::info('test log','dashboard') 方法 配置文件中我的2个类是EmailTarget和DbTarget,它们的类别都设置为“dashboard”,级别设置为“info” 就将数据输入到2个目标而言,一切都正常 DB每个触发器有2个条目。第一个是上面的消息“测试日志”。第二个条目是我最感兴趣的,它有所有好的数据,比如_GET、_POST和_SERVE

我想获得日志信息,并以人类可读的格式解析它们以更新电子邮件

我目前正在使用记录器,将数据记录到数据库中,并使用

Yii::info('test log','dashboard') 
方法

配置文件中我的2个类是EmailTarget和DbTarget,它们的类别都设置为“dashboard”,级别设置为“info”

就将数据输入到2个目标而言,一切都正常

DB每个触发器有2个条目。第一个是上面的消息“测试日志”。第二个条目是我最感兴趣的,它有所有好的数据,比如_GET、_POST和_SERVER等等

我尝试了几种不同的方法来获取数据

触发后

Yii::info(...) 
在其中一个控制器中,我调用了进程的主页

Yii::getLogger()->messages
我从所有SQL启动查询的引导数据库中获取数据。没有变量或“测试日志”

然后我打了个直拨电话

Yii::getLogger()->log('test log',0,'dashboard');
但是我没有日志记录,但是

Yii::getLogger()->messages 
仍然提供启动数据

我确实进入了DbTarget类并显示了我需要的变量,只是不确定到那个点的路径,我讨厌修改那个类

我想创建一个自定义目标,但我不知道如何做到这一点后,阅读了一节,这是大约1段长

我只是不知道该怎么做。创建自定义目标或2。如何截获VARS消息。我猜测,正如文档所说,VAR是附加的,这是内部处理的

我希望这一切都有意义

任何朝正确方向的轻推都将受到赞赏

谢谢
Scotty

您应该编写自己的日志目标。使用
Yii::getLogger()->messages
是不可靠的,因为每次调用后,消息可能会发送给dispatcher,结果将是空数组。根据记录器配置,它可能发生在每次调用
log()
之后,因此
消息将始终为空


另请参阅文档。

感谢您帮助确认我关于需要创建自己的目标的想法,我有这种怀疑。现在我可以把我的资源转移到这方面。