首頁  >  文章  >  php框架  >  yii框架如何寫日誌?

yii框架如何寫日誌?

angryTom
angryTom原創
2020-01-21 18:59:423283瀏覽

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

yii框架如何寫日誌?

yii框架如何寫日誌?

1、Yii 使用log 首先需要修改設定檔:

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            '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' => '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')

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

你可以將這段程式碼:

//'categories' => ['application'], 註解去掉,這樣就只會記錄到各自的log中了。

但這樣也會導致 有些錯誤訊息不能記錄到 app.log。

以上是yii框架如何寫日誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn