Yii2-如何从日志文件中删除不必要的信息?

Yii2-如何从日志文件中删除不必要的信息?,yii2,yii2-advanced-app,yii2-basic-app,Yii2,Yii2 Advanced App,Yii2 Basic App,我正在尝试在Yii2中记录消息,然后将这些消息通过电子邮件发送到我指定的电子邮件地址 配置文件web.php包含: 'mail' => [ 'class' => 'yii\log\EmailTarget', 'categories' => ['mail'], 'logVars' => [], 'mailer' =&

我正在尝试在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
成功执行后,我收到如下邮件:

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

通过设置属性,可以从日志中删除前三部分:

'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
并覆盖以删除它们。

您可以通过设置属性从日志中删除前三个部分:

'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
并覆盖以删除它们。

您可以在配置文件
web.php
或代码中进行设置

Yii::$app->log->targets['test']->prefix = function (){
        return null;
};


您可以在配置文件
web.php
或代码中进行设置

Yii::$app->log->targets['test']->prefix = function (){
        return null;
};


扩展
yii\log\EmailTarget
类并处理日志消息?因此yii在内部不提供管理自定义日志消息的功能。您是否尝试过配置?最简单的方法还是创建自己的日志处理程序。不,我还没有尝试过。但我明白你想说的。谢谢。扩展
yii\log\EmailTarget
类并处理日志消息?因此yii内部不提供管理自定义日志消息的功能。您尝试过配置吗?最简单的方法还是创建自己的日志处理程序。不,我还没有尝试过。但我明白你想说的。谢谢