yii提供了一個(gè)強(qiáng)大的日志框架,這個(gè)框架具有高度的可定制性和可擴(kuò)展性。使用這個(gè)框架, 你可以輕松地記錄各種類型的消息,過(guò)濾它們, 并且將它們收集到不同的目標(biāo),諸如文件,數(shù)據(jù)庫(kù),郵件。
使用Yii日志框架涉及下面的幾個(gè)步驟: (推薦學(xué)習(xí):yii教程)
在你代碼里的各個(gè)地方記錄 log messages;
在應(yīng)用配置里通過(guò)配置 log targets 來(lái)過(guò)濾和導(dǎo)出日志消息;
檢查由不同的目標(biāo)導(dǎo)出的已過(guò)濾的日志消息(例如:Yii debugger)。
日志消息
記錄日志消息就跟調(diào)用下面的日志方法一樣簡(jiǎn)單:
Yii::trace():記錄一條消息去跟蹤一段代碼是怎樣運(yùn)行的。這主要在開(kāi)發(fā)的時(shí)候使用。
Yii::info():記錄一條消息來(lái)傳達(dá)一些有用的信息。
Yii::warning():記錄一個(gè)警告消息用來(lái)指示一些已經(jīng)發(fā)生的意外。
Yii::error():記錄一個(gè)致命的錯(cuò)誤,這個(gè)錯(cuò)誤應(yīng)該盡快被檢查。
主要用法:
'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ 'error' => [ 'class' => yiilogFileTarget::class, 'levels' => ['error', 'warning'], 'enableRotation' => false, 'logVars' => [], ], 'article' => [ 'class' => 'yiilogFileTarget', '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' => 'yiilogFileTarget', 'categories' => ['order'], 'levels' => ['error', 'warning'], 'logVars' => ['*'], 'logFile' => '@runtime/logs/order.log', ], ], ], Yii::info('start calculating average revenue', 'pay');