yii框架如何寫日志?

開發中,為了方便我們調試程序和信息記錄,我們會將必要的信息寫入一個文件中,這就是日志文件,yii框架為我們提供了很好的寫日志方法,下面我們一起來看看吧。

yii框架如何寫日志?

yii框架如何寫日志?

1、Yii 使用 log 首先需要修改配置文件:

'log'?=>?[ ????'traceLevel'?=>?YII_DEBUG???3?:?0, ????'targets'?=>?[ ????????[ ????????????'class'?=>?'yiilogFileTarget', ????????????'levels'?=>?['error',?'warning'], ????????????'logVars'?=>?['_GET'], ????????], ????], ],

targets參數解釋:

● class 指定了使用文件保存日志

●?levels 指定了保存 error 和 warning 日志

●?logVars 指定了保存 get參數

如果不指定 logVars 會保存 GET POST COOKIE SESSION SERVER等參數,這樣會影響到我們的查看,我們可以修改為

'logVars'?=>?['*'],?//?只記錄message

2、使用如下:

Yii::error($message); Yii::warning($message);

將日志寫入到不同的文件

方法一:在需要記錄日志的地方先賦值log文件地址,再寫入日志

Yii::$app->log->targets[0]->logFile?=?Yii::getAlias('@runtime').Directory_SEPARATOR.'logs'.DIRECTORY_SEPARATOR.'app2.log'; Yii::warning($message);

方法二(推薦):修改配置文件 main.php

'log'?=>?[ ????'traceLevel'?=>?YII_DEBUG???3?:?0, ????'targets'?=>?[ ????????[ ????????????'class'?=>?'yiilogFileTarget', ????????????'levels'?=>?['error',?'warning'], ????????????'logVars'?=>?['*'], ????????????//'categories'?=>?['application'], ????????????//'logFile'?=>?'@runtime/logs/app.log', ????????], ????????[ ????????????'class'?=>?'yiilogFileTarget', ????????????'categories'?=>?['pay'], ????????????'levels'?=>?['error',?'warning'], ????????????'logVars'?=>?['*'], ????????????'logFile'?=>?'@runtime/logs/pay.log', ????????], ????????[ ????????????'class'?=>?'yiilogFileTarget', ????????????'categories'?=>?['order'], ????????????'levels'?=>?['error',?'warning'], ????????????'logVars'?=>?['*'], ????????????'logFile'?=>?'@runtime/logs/order.log', ????????], ????], ],

使用:

Yii::warning($message,'pay')

此處 message 會記錄到 pay.log中,當然同時也會記錄到默認的 app.log中

你可以 將這段代碼: //’categories’ => [‘application’], 注釋去掉,這樣就只會記錄到各自的log中了。

但是這樣也會導致 一些錯誤信息不能記錄到 app.log中。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享