yii2 - Yii2 - 如何从日志文件中删除不必要的信息?
问题描述
我正在尝试在 Yii2 中记录消息,然后通过电子邮件发送到我指定的电子邮件地址。
配置文件web.php
包含:
'mail' => [
'class' => 'yii\log\EmailTarget',
'categories' => ['mail'],
'logVars' => [],
'mailer' => 'mailer',
'message' => [
'from' => ['user@example.com'],
'to' => ['user1@example.com'],
'subject' => 'Log message',
],
],
我正在记录这样的消息:
Yii::info('Log message example','mail');
成功执行后,我收到这样的邮件:
2018-07-31 09:01:12 [127.0.0.1][user@example.com][-][info][mail] Log message example
所以我想要做的是我想从这条消息中删除不需要的信息,如 IP 地址、用户名等,最后我想要的是
2018-07-31 09:01:12 Log message example
解决方案
prefix
您可以通过设置属性从日志中删除前三个部分:
'mail' => [
'class' => 'yii\log\EmailTarget',
'categories' => ['mail'],
'logVars' => [],
'prefix' => function () {
return '';
},
'mailer' => 'mailer',
'message' => [
'from' => ['user@example.com'],
'to' => ['user1@example.com'],
'subject' => 'Log message',
],
],
最后两部分(级别和类别)是硬编码的,您需要扩展EmailTarget
和覆盖formatMessage()
以删除它们。
推荐阅读
- php - 从php多维数组中的json获取嵌套数据
- groovy - Groovy - 访问具有另一个变量值的变量
- java - 列表的 BinaryOperator
添加列表 - python - Python:`validators.url` 不接受 1-9 的端口号,但接受大于 65535 的端口?
- mysql - 如何连接两个表但不重复mysql中的行
- responsive-design - 如何在我的博客主页中连续显示特定标签或类别的帖子?
- python - 对“FT_Done_MM_Var”的未定义引用
- android - Android 应用内购买
- sql - SQL 查询组按包含
- html - 如何使用 MutationObserver 检测 div 值(Django 渲染)变化