您的位置:首页 > 编程语言 > PHP开发

yii2.0log组件

2016-07-17 14:47 351 查看
filelog

日志记录级别:


self::LEVEL_ERROR => 'error',       //不可恢复的异常信息
self::LEVEL_WARNING => 'warning',   //程序运行时警告信息
self::LEVEL_INFO => 'info',         //程序运行信息,如:管理员操作
self::LEVEL_TRACE => 'trace',       //调试信息,需要开启YII_DEBUG
self::LEVEL_PROFILE_BEGIN => 'profile begin',//通过begin和end来记录代码运行的时间
self::LEVEL_PROFILE_END => 'profile end',


config/web.php下的配置

'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,  //在调试模式下是3,不是调试模式是0
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning','info'],//异常,警告
],
],
],


控制器测试下

<?php
namespace app\controllers;

use yii\web\Controller;

class LogController extends Controller
{
public function actionTest(){
//\Yii::warning('警告');
// \Yii::error('Exception 400','app');
\Yii::info('修改密码','manager');
}
}

可以再runtime/logs/app.log下查看日志信息

DBlog

首先创建log表

create table `log`
(
`id`          bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`level`       integer,
`category`    varchar(255),
`log_time`    double,
`prefix`      text,
`message`     text,
key `idx_log_level` (`level`),
key `idx_log_category` (`category`)
) engine InnoDB;

把web.php的配置改成数据库的配置

'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,  //在调试模式下是3,不是调试模式是0
'targets' => [
[
'class' => 'yii\log\DbTarget',
'levels' => ['error', 'warning','info'],//异常,警告
],
],
],

然后再访问下log/test.html,不需要修改代码就会看见数据库中出现了日志信息

LOG的调度器Dispatcher 就是按照levels把信息记录在文件或数据库或其他。。

'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,  //在调试模式下是3,不是调试模式是0
'targets' => [
'file'=>[
'class'         =>'yii\log\FileTarget',
'levels'        =>['trace','info'],

],
'db'=>[
'class'     =>'yii\log\DbTarget',
'levels'    =>['error','warning'],
],
],
],
class LogController extends Controller
{
public function actionTest(){
\Yii::warning('警告');
\Yii::error('Exception 400','app');
\Yii::info('修改密码','manager');
}
}

这时可以再数据库和app.log下分别看到error,warning以及info级别的信息

log的的配置加上categories时要注意的事项

'targets' => [
'file'=>[
'class'         =>'yii\log\FileTarget',
'levels'        =>['trace','info'],
'categories'    =>['yii\*','manager'],
/*
* categories必须和levels相对应,否则级别符合了,分类不匹配就不会生成Log文件
* 如:  \Yii::info('修改密码','manager');
* */
],
'db'=>[
'class'     =>'yii\log\DbTarget',
'levels'    =>['error','warning'],
],
],
],
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: