yii2.0log组件

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'],
        ],
    ],
],

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值