1.配置
在配置文件main.php或者main-local.php中配置参数
return [
//日志使用时需要使用的
'bootstrap' => ['log'],
'components' => [
//日志配置
'log' => [
'targets' => [
/*
*使用文件存储日志
*/
'file' => [
//文件方式存储日志操作对应操作对象
'class' => 'yii\log\FileTarget',
/* 定义存储日志信息的级别,只有在这个数组的数据才能会使用当前方式存储起来
有trace(用于开发调试时记录日志,需要把YII_DEBUG设置为true),
error(用于记录不可恢复的错误信息),
warning(用于记录一些警告信息)
info(用于记录一些系统行为如管理员操作提示)
这些常用的。
*/
'levels' => ['info','error'],
/**
* 按类别分类
* 默认为空,即所有。yii\* 指所有以 yii\ 开头的类别.
*/
'categories' => ['yii\*'],
],
/*
*使用数据库存储日志
*/
'db' => [
//数据库存储日志对象
'class' => 'yii\log\DbTarget',
//同上
'levels' => ['error', 'warning'],
]
],
]
]
];
2.使用数据库存储日志
1.具体参数在上面配置文件中已经配置好啦。
2.cd 到项目根目录,在common模块配置好数据库配置,执行命令行创建表:
php yii migrate --migrationPath=@yii/log/migrations/
这个使用了Yii2自带的数据库迁移指令,php是安装php后设定环境变量就可以使用,yii migrate是数据库迁移指令,通过它可以做一些数据库操作,有兴趣的可以去Yii2-数据库迁移看下。
–migrationPath
指定存储所有迁移类文件的目录。
@yii/log/migrations/
指是文件位置,这里的位置是:
advanced\vendor\yiisoft\yii2\log\migrations
这里。
执行完这个指令,会有提示,输入yes指令,就ok啦!
查看数据库中就会出现log这个表。
3.使用文件存储日志
1.使用上边的设置既可以直接使用文件记录日志。 这个日志文件的默认位置是当前项目web目录同级目录runtime/log/app.log这里。在file配置数组中增加
'logFile' => '@runtime/logssss/appsss.log',
可以更改默认日志位置。
4.使用日志记录
可以使用这种方式记录:
use yii\log\Logger;
//其他代码
Yii::getLogger()->log('错误11,错误11,错误11', Logger::LEVEL_TRACE,'application');
使用这种方式存储需要使用use yii\log\Logger;
来引入类。
第一个参数是错误信息,第二个是错误消息的级别,级别可以去引入的类use yii\log\Logger;
去查看。第三个参数为日志消息的类别,默认值为application
.
Yii2中还有另外一种快捷方法可以记录日志。
Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。
Yii::info():记录一条消息来传达一些有用的信息。
Yii::warning():记录一个警告消息用来指示一些已经发生的意外。
Yii::error():记录一个致命的错误,这个错误应该尽快被检查。
这些函数的参数一致,都是有两个参数。第一个参数定义日志信息,第二个参数是日志消息的类别,默认值为application。
5.日志的其他操作配置
配置关闭日志,可以直接修改配置文件或者使用如下代码禁用
Yii::$app->log->targets['file']->enabled = false;
默认日志的上下文会包括$_GET, $_POST,$_FILES, $_COOKIE, $_SESSION, $_SERVER这些信息,而这些信息是可以配置的,如下
[
'class' => 'yii\log\FileTarget',
'logVars' => ['_SERVER'],
]
上面的日志目标配置指明了只有 $_SERVER 变量的值将被追加到日志消息中。