平時經常看php的錯誤日誌,很少有機會去自己動手寫日誌,看了王健的《最佳日誌實踐》覺得寫乙個清晰明了,結構分明的日誌還是非常有必要的。
在寫日誌前,我們問問自己:為什麼我們有時要記錄自定義的日誌呢?而不用系統預設的日誌記錄方式呢?
我認為有兩個原因:
1.團隊需要乙個統一格式的日誌方便管理
2.大量無用錯誤日誌佔據硬碟空間,僅需記錄有意義的日誌。
那麼,實踐一下。
log_errors = off
改成
log_errors = on
1<?php23
//錯誤處理函式
4function myerrorhandler($errno, $errstr, $errfile, $errline)5
3435
36return
true;37
}3839$error_handler = set_error_handler("myerrorhandler");//
開啟自定義錯誤日誌
echo 1/0;
看看你定義的路徑下是否多了乙個日誌檔案呢?:)
注:以下級別的錯誤不能由使用者定義的函式來處理: e_error、 e_parse、 e_core_error、 e_core_warning、 e_compile_error、 e_compile_warning,和在 呼叫 set_error_handler() 函式所在檔案中產生的大多數 e_strict。
不過當你開啟了錯誤日誌系統(php.ini中的log_error = on)並且指定了系統日誌檔案(同樣也是php.ini中的error_log=路徑名),並且error_reporting開啟了全部後,以上的錯誤都會作為系統錯誤日誌而記錄在你定義的檔案中。
PHP 自定義錯誤機制
set error handler 函式設定使用者自定義的錯誤處理函式,該函式用於建立執行時期間的使用者自己的錯誤處理方法,該函式會返回舊的錯誤處理程式,若失敗,則返回 null。下面來看一些例子.set error handler php從4.1.0開始提供了自定義錯誤處理控制代碼的功能函式set...
WebApi實現自定義錯誤日誌
一.mvc錯誤處理預設有新增handleerrorattribute預設的過濾器,但是我們有可能要捕捉這個錯誤並記錄系統日誌那麼這個過濾器就不夠用了,所以我們要自定義mvc及web api各自的錯誤處理類 mvc 自定義錯誤日誌webexceptionattribute.cs webapi 自定義錯...
PHP 錯誤丟擲及自定義處理
php中的錯誤丟擲及自定義處理指的是允許我們自定義丟擲錯誤並且捕捉錯誤並進行處理。類似於 物件導向語言中的throw 及 try.catch.在php中主要由以下三個函式來完成丟擲以及捕捉處理.trigger error set exception handler set error handle ...