Yii2 日志(log)配置与使用
1.配置
在配置文件main.php或者main-local.php中配置参数
return [
//日志使用时需要使用的
"bootstrap" => ["log"],
"components" => [
//日志配置
"log" => [
"targets" => [
/*
*使用文件存储日志
*/
"file" => [
//文件方式存储日志操作对应操作对象
"class" => "yiilogFileTarget",
/* 定义存储日志信息的级别,只有在这个数组的数据才能会使用当前方式存储起来
有trace(用于开发调试时记录日志,需要把YII_DEBUG设置为true),
error(用于记录不可恢复的错误信息),
warning(用于记录一些警告信息)
info(用于记录一些系统行为如管理员操作提示)
这些常用的。
*/
"levels" => ["info","error"],
/**
* 按类别分类
* 默认为空,即所有。yii* 指所有以 yii 开头的类别.
*/
"categories" => ["yii*"],
],
/*
*使用数据库存储日志
*/
"db" => [
//数据库存储日志对象
"class" => "yiilogDbTarget",
//同上
"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/
指是文件位置,这里的位置是:
advancedvendoryiisoftyii2logmigrations
这里。
执行完这个指令,会有提示,输入yes指令,就ok啦!
查看数据库中就会出现log这个表。
3.使用文件存储日志
1.使用上边的设置既可以直接使用文件记录日志。这个日志文件的默认位置是当前项目web目录同级目录runtime/log/app.log这里。在file配置数组中增加
"logFile" => "@runtime/logssss/appsss.log",
可以更改默认日志位置。
4.使用日志记录
可以使用这种方式记录:
use yiilogLogger;
//其他代码
Yii::getLogger()->log("错误11,错误11,错误11", Logger::LEVEL_TRACE,"application");
使用这种方式存储需要使用use yiilogLogger;
来引入类。
第一个参数是错误信息,第二个是错误消息的级别,级别可以去引入的类use yiilogLogger;
去查看。第三个参数为日志消息的类别,默认值为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" => "yiilogFileTarget",
"logVars" => ["_SERVER"],
]
上面的日志目标配置指明了只有 $_SERVER 变量的值将被追加到日志消息中。
- 上一篇: yii2记录admin操作日志
- 下一篇: Go语言实现位图排序(bitmap)