開發中,為了方便我們調試程序和信息記錄,我們會將必要的信息寫入一個文件中,這就是日志文件,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