代码之家  ›  专栏  ›  技术社区  ›  akshaypjoshi

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

  •  1
  • akshaypjoshi  · 技术社区  · 6 年前

    我试图在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
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   rob006    6 年前

    您可以通过设置从日志中删除前三个部分 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() 把它们移走。

        2
  •  1
  •   vivek dhamecha    6 年前

    您可以在配置文件中设置 web.php 或者在你的代码里。

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

    'mail' => [
           'class' => 'yii\log\EmailTarget',
           'categories' => ['mail'],
           'logVars' => [],
           'mailer' => 'mailer',
           'prefix' => function () {
               return null;
           },
           'message' => [
           'from' => ['user@example.com'],
           'to' => ['user1@example.com'],
           'subject' => 'Log message',
         ],
    ],