YII 日志

常用日志方法

Yii::trace()
Yii::error()
Yii::warning()
Yii::info()
Yii::beginProfile()
Yii::endProfile()

日志消息可以是字符串,也可以是复杂的数据,假如一条日志消息不是一个字符串,它将被导出为一个字符串,通过调用 yii\helpers\VarDumper::export()。
建议为每个日志消息指定一个适当的类别,一个简单而高效的命名方案是使用PHP魔术常量 METHOD 作为分类名称。

Yii::trace('start calculating average revenue', _ _METHOD_ _);

日志目标

一个日志目标是一个 [yii\log\Target]类或者它的子类的实例。 它将通过他们的严重层级和类别来过滤日志消息,然后将它们导出到一些媒介中。
在config下的main.php里

      'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\DbTarget',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\EmailTarget',
                    'levels' => ['error'],
                    'categories' => ['yii\db\*'],
                    'message' => [
                       'from' => ['[email protected]'],
                       'to' => ['[email protected]', '[email protected]'],
                       'subject' => 'Database errors at example.com',
                    ],
                ],
            ],
        ],
    ],

修改 'levels' => ['error', 'warning'], 以修改记录日志的级别。

取得logger实例,并访问

$loger = \Yii::getLogger();
$loger->log('loglog',\yii\log\Logger::LEVEL_ERROR);

性能分析

性能分析是一个特殊的消息记录类型,它通常用在测量某段代码块的时间, 并且找出性能瓶颈是什么。举个例子,yii\db\Command 类 使用性能分析找出每个数据库查询的时间。

为了使用性能分析,首先确定需要进行分析的代码块。 然后像下面这样围住每个代码块:

    \Yii::beginProfile('aaa');
    for($i=1;$i<10000;$i++){
        sqrt($i);
    }
    \Yii::endProfile('aaa');

要想把这个日志信息记录到文件里,要记着修改以下内容

            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning','profile'],
                ],

2018-01-03 08:04:20 [127.0.0.1][-][-][profile begin][application] aaa
in HelloController.php:21
2018-01-03 08:04:41 [127.0.0.1][-][-][profile end][application] aaa
in HelloController.php:27

你可能感兴趣的:(YII 日志)