要自定義 PHP 日志格式,您需要修改 PHP 配置文件(php.ini)中的 log_errors
和 error_log
設置,并使用自定義的錯誤處理函數
<?php
phpinfo();
在顯示的信息中找到 “Loaded Configuration File” 一項,這就是您的 php.ini 文件的位置。
; 啟用錯誤日志記錄
log_errors = On
; 指定錯誤日志文件的路徑
error_log = /path/to/your/error.log
; 自定義錯誤日志格式
; 可用的占位符有:{date}, {time}, {type}, {message}, {file}, {line}
; 例如:{date} {time} [Error]: {message} in {file} on line {line}
error_log_format = "{date} {time} [Error]: {message} in {file} on line {line}"
將 /path/to/your/error.log
替換為您希望存儲錯誤日志的文件路徑。您可以根據需要自定義 error_log_format
的值。
保存 php.ini 文件并重啟您的 web 服務器(例如 Apache 或 Nginx),以使更改生效。
創建一個自定義的錯誤處理函數,該函數將使用您在 php.ini 文件中定義的日志格式記錄錯誤。在您的 PHP 腳本中添加以下代碼:
<?php
function custom_error_handler($errno, $errstr, $errfile, $errline) {
global $error_log_format;
$date = date("Y-m-d H:i:s");
$time = date("H:i:s");
$type = ($errno == E_ERROR) ? "Error" : (($errno == E_WARNING) ? "Warning" : "Notice");
$message = "[" . $type . "] " . $errstr;
$log_entry = str_replace(["{date}", "{time}", "{type}", "{message}", "{file}", "{line}"], [$date, $time, $type, $message, $errfile, $errline], $error_log_format);
error_log($log_entry, 3, $error_log);
return true;
}
set_error_handler("custom_error_handler");
這段代碼定義了一個名為 custom_error_handler
的函數,該函數使用您在 php.ini 文件中設置的日志格式記錄錯誤。然后,使用 set_error_handler
函數將自定義錯誤處理程序設置為默認錯誤處理程序。
現在,當您的 PHP 腳本中出現錯誤時,它們將根據您在 php.ini 文件中定義的自定義格式記錄到指定的錯誤日志文件中。