Tp5自帶的日志記錄是所有的異常都會給記錄,而且非常詳細,
而異常我把它分為兩種,一種是自己代碼編寫錯誤導致的服務器錯誤,還有一種是用戶通過輸入造成的異常
這兩種異常如果都給記錄日志沒必要,如果用戶每輸入一個導致異常 那就記錄一下,那將會有很多的日志
所以在這里先關閉tp5自己的日志記錄功能
1 config.php 2 3 4 'log' => [ 5 // 日志記錄方式,內置 file socket 支持擴展 6 'type' => 'test', 7 // 日志保存目錄 8 'path' => LOG_PATH, 9 // 日志記錄級別 10 'level' => [], 11 ],
把type改成test就好
下面在我們的自定義異常處理類中創建一個記錄日志的方法,在方法中重置log配置記錄日志,
1 //tp的日志默認是關閉的,所以下面是初始化日志配置,在日志中記錄錯誤信息 2 private function recordErrorLog(Exception $e) 3 { 4 log::init([ 5 'type' => 'File', 6 'path' => LOG_PATH, 7 'level' => ['error'] 8 ]); 9 Log::record($e->getMessage(), 'error'); 10 }
而在我們自己寫的代碼中的異常又分為兩種,
一種是自己已經自定義的異常,一種是還沒定義的異常,
自己定義的異常信息自己已經表明了,當觸發時返回自己定義的信息自己就會很明白哪里錯了,所以是不需要記錄日志的,
而真正需要記錄日志的是那些未知的錯誤,記錄到日志里用來看哪里錯了
而在需要記錄日志的異常中只需要一句話就好
$this->recordErrorLog($e);
正在學習中,在此記錄學習過程中的個人理解,如有錯誤或更好的理解望指出。