Yii提供了一个强大的日志框架,这个框架具有高度的可定制性和可扩展性。使用这个框架, 你可以轻松地记录各种类型的消息,过滤它们, 并且将它们收集到不同的目标,诸如文件,数据库,邮件。
使用Yii日志框架涉及下面的几个步骤:
在你代码里的各个地方记录 log messages;
在应用配置里通过配置 log targets 来过滤和导出日志消息;
检查由不同的目标导出的已过滤的日志消息(例如:Yii debugger)。
日志消息
记录日志消息就跟调用下面的日志方法一样简单:
Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。
Yii::info():记录一条消息来传达一些有用的信息。
Yii::warning():记录一个警告消息用来指示一些已经发生的意外。
Yii::error():记录一个致命的错误,这个错误应该尽快被检查。
主要用法:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
'error' => [
'class' => yii\log\FileTarget::class,
'levels' => ['error', 'warning'],
'enableRotation' => false,
'logVars' => [],
],
'article' => [
'class' => 'yii\log\FileTarget',
'categories' => ['pay'],
'levels' => ['error', 'warning','info'],
'logVars' => ['*'],
'logFile' => '@runtime/logs/'.date('Y-m-d').'_article.log',
'prefix' => function ($message) {
$user = Yii::$app->has('user', true) ? Yii::$app->get('user') : null;
$userID = $user ? $user->getId(false) : '-';
return "[$userID]";
},
'enabled' => true
],
'order' => [
'class' => 'yii\log\FileTarget',
'categories' => ['order'],
'levels' => ['error', 'warning'],
'logVars' => ['*'],
'logFile' => '@runtime/logs/order.log',
],
],
],
\Yii::info('start calculating average revenue', 'pay');
class 指定记录日志方式 db file email ...
categories 指定日志分类
levels 配置日志级别显示
logVars 指定了保存 get参数
如果不指定 logVars 会保存 GET POST COOKIE SESSION SERVER等参数,这样通常会影响到我们的查看,我们可以修改为
'logVars' => ['*'], // 只记录message
logFile 日志存储位置
enabled 开启关闭
网友评论