具體方法如下:
首先配置錯誤方法,修改ErrorHandler參數
(相關推薦:yii框架)
在config/web下,默認為site控制器下的error方法
'errorHandler'?=>?[ ????????????'errorAction'?=>?'site/error', ????????]
修改為:
'errorHandler'?=>?[ ????????????'errorAction'?=>?'error/error', ????????]
我習慣于重新創建一個錯誤方法,根據個人習慣來。
在error控制器里創建actionError,如下:
public?function?actionError(){ ???????$error?=?YII::$app->errorHandler->exception; ???????$error_msg?=?''; ???????if($error){ ???????????$filed?=?$error->getFile();??//獲取錯誤文件 ???????????$line?=?$error->getLine();???//獲取錯誤行數 ???????????$message?=?$error->getMessage();?//獲取錯誤消息 ???????????$code?=?$error->getCode();???//獲取錯誤碼 ???????????$log?=?new?FileTarget(); ???????????$log->logFile?=?Yii::$app->getRuntimePath()?.?"/log/error.log";?//生成文件到log目錄下 ???????????$error_msg?=?$message?."?[file:{$filed}][line:{$line}][message:{$message}][code:{$code}][url:{$_SERVER['REQUEST_URI']}][POST_DATA:".http_build_query($_POST)."]"; ???????????$log->messages[]?=?[ ???????????????$error_msg, ???????????????1, ???????????????'applicition', ???????????????microtime(?true?) ???????????]; ????????????$log->export(); ???????} ???????return?$error_msg; ???}
這樣錯誤日志就會生成在runtime/log目錄下了。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END