yii2 日誌操作(log)以及寫入不同的log檔案
版權宣告:轉載請註明出處:http://blog.csdn.net/m0sh1 http://blog.share345.com/ https://blog.csdn.net/m0sh1/article/details/78211778 為了方便我們的開發除錯以及資訊記錄,我們通常需要將必要資訊寫入log。 Yii 使用 log 首先修改配置檔案:
'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], 'logVars' => ['_GET'], ], ], ], 這裡 class 指定了使用檔案儲存日誌,levels 指定了儲存 error 和 warning 日誌 logVars 指定了儲存 get引數
如果不指定 logVars 會儲存 GET POST COOKIE SESSION SERVER等引數,這樣通常會影響到我們的檢視,我們可以修改為
'logVars' => ['*'], // 只記錄message 1 使用如下:
Yii::error($message); Yii::warning($message); 1 2 雖然開啟log影響效率(讀寫檔案),所以生產環境通常會禁用log 但是有些必要資訊我們往往有需要記錄下來,比如支付日誌,那麼這就產生了新的需求: 不同資訊記錄到不同日誌檔案中。 法一:
//在需要記錄日誌的地方先賦值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' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], 'logVars' => ['*'], //'categories' => ['application'], //'logFile' => '@runtime/logs/app.log', ], [ 'class' => 'yii\log\FileTarget', 'categories' => ['pay'], 'levels' => ['error', 'warning'], 'logVars' => ['*'], 'logFile' => '@runtime/logs/pay.log', ], [ 'class' => 'yii\log\FileTarget', 'categories' => ['order'], 'levels' => ['error', 'warning'], 'logVars' => ['*'], 'logFile' => '@runtime/logs/order.log', ], ], ], 使用:
Yii::warning($message,'pay') 1 此處 message 會記錄到 pay.log中,當然同時也會記錄到預設的 app.log中 你可以 將這段程式碼: //’categories’ => [‘application’], 註釋去掉,這樣就只會記錄到各自的log中了。 但是這樣也會導致 一些錯誤資訊不能記錄到 app.log中。 --------------------- 作者:Simael__Aex 來源:CSDN 原文:https://blog.csdn.net/m0sh1/article/details/78211778 版權宣告:本文為博主原創文章,轉載請附上博文連結!