要自定义 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 文件中定义的自定义格式记录到指定的错误日志文件中。