17. Yii 2.0 log组件

来源:互联网 发布:数据库的作用是什么 编辑:程序博客网 时间:2024/05/20 16:42
log组件主要用于记录程序运行过程中产生的异常(或错误)或 操作日志。

这里以 Yii 2.0 基础版为例,高级版类似。
Yii 封装的日志类文件位于 /vendor/yiisoft/yii2/log 目录下。
log组件支持的日志介质主要有 DbTarget.php、FileTarget.php、EmailTarget.php和SyslogTarget.php。
这里我们主要介绍前三种,即数据库日志、文件日志和邮件日志。

记录日志的级别,主要有以下几种:
self::LEVEL_ERROR => 'error',      // 不可恢复的异常信息
self::LEVEL_WARNING => 'warning',   // 程序运行时的警告信息
self::LEVEL_INFO => 'info',    // 程序运行时的信息,如:管理员操作
self::LEVEL_TRACE => 'trace',    // 调试信息,需要开启 YII_DEBUG 调试模式
self::LEVEL_PROFILE_BEGIN => 'profile begin',
self::LEVEL_PROFILE_END => 'profile end',

1. 文件日志
文件日志的默认保存位置为 /basic/runtime/logs

首先,查看web配置文件 /basic/config/web.php 中的组件配置,可看到日志组件的默认配置如下:
其次,在控制器层添加一个控制器文件 LogController.php,进行测试,代码如下:
最后,在浏览器中访问 http://basic.com/log/test,就可以看到 /basic/runtime/logs 中的日志文件了。

2. 数据库日志
首先,需要按照 /basic/vendor/yiisoft/yii2/log/migrations/schema-mysql.sql 文件中给出的sql语句,在数据库中创建一个 log 数据表(如果需要表前缀,请自行加上)。

其次,修改web配置文件 /basic/config/web.php 中的组件配置中的log组件,将 'class' => 'yii\log\FileTarget' 改为 'class' => 'yii\log\DbTarget' 即可。

最后,在浏览器中访问 http://basic.com/log/test,就可以在 数据表 log 中看到对应的日志记录了。

3. 邮件日志
使用邮件日志介质,除了要修改log组件外,还必须配置mailer组件。配置方法可参考下面的部分代码。

4. Dispatcher调度器的使用
Dispatcher调度器,又称分配器,利用它的日志组件配置格式,可以将不同级别的日志分配给不同的日志介质来处理,也可以将同一级别的日志分配给多个日志介质处理。

Dispatcher调度器的类文件为/basic/vendor/yiisoft/yii2/log/Dispatcher.php

首先,修改web配置文件 /basic/config/web.php 中的组件配置中的log组件的配置,代码如下:
其次,由于我们使用了邮件日志介质,故我们还必须修改组件配置中的mailer组件的配置,代码如下:
最后,在浏览器中访问 http://basic.com/log/test ,测试对应的效果。

1 0
原创粉丝点击