php开发心得

php Yii2 日志简述

2019-01-18  本文已影响53人  sany_1126

Yii提供了一个强大的日志框架,这个框架具有高度的可定制性和可扩展性。使用这个框架, 你可以轻松地记录各种类型的消息,过滤它们, 并且将它们收集到不同的目标,诸如文件,数据库,邮件。

使用Yii日志框架涉及下面的几个步骤:

在你代码里的各个地方记录 log messages

在应用配置里通过配置 log targets 来过滤和导出日志消息;

检查由不同的目标导出的已过滤的日志消息(例如:Yii debugger)。

日志消息 

记录日志消息就跟调用下面的日志方法一样简单:

Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。

Yii::info():记录一条消息来传达一些有用的信息。

Yii::warning():记录一个警告消息用来指示一些已经发生的意外。

Yii::error():记录一个致命的错误,这个错误应该尽快被检查。

主要用法:

'log' => [

    'traceLevel' => YII_DEBUG ? 3 : 0,

    'targets' => [

        'error' => [

            'class' => yii\log\FileTarget::class,

            'levels' => ['error', 'warning'],

            'enableRotation' => false,

            'logVars' => [],

        ],

        'article' => [

            'class' => 'yii\log\FileTarget',

            'categories' => ['pay'],

            'levels' => ['error', 'warning','info'],

            'logVars' => ['*'],

            'logFile' => '@runtime/logs/'.date('Y-m-d').'_article.log',

            'prefix' => function ($message) {

                $user = Yii::$app->has('user', true) ? Yii::$app->get('user') : null;

                $userID = $user ? $user->getId(false) : '-';

                return "[$userID]";

            },

            'enabled' => true

        ],

        'order' => [

            'class' => 'yii\log\FileTarget',

            'categories' => ['order'],

            'levels' => ['error', 'warning'],

            'logVars' => ['*'],

            'logFile' => '@runtime/logs/order.log',

        ],

    ],

],

\Yii::info('start calculating average revenue', 'pay');

class 指定记录日志方式  db file email ...

categories 指定日志分类

levels 配置日志级别显示

logVars 指定了保存 get参数

如果不指定 logVars 会保存 GET POST COOKIE SESSION SERVER等参数,这样通常会影响到我们的查看,我们可以修改为

'logVars' => ['*'], // 只记录message

logFile 日志存储位置

enabled 开启关闭

上一篇 下一篇

猜你喜欢

热点阅读