ubuntu

Ubuntu PHP日志格式化方法

小樊
40
2025-08-31 03:37:59
栏目: 编程语言

在 Ubuntu 系统中,PHP 日志格式可以通过修改 PHP 配置文件 php.ini 或者 Web 服务器(如 Apache 或 Nginx)的配置文件来实现。以下是针对不同情况的格式化方法:

  1. 修改 PHP 配置文件 php.ini

找到你的 php.ini 文件,通常位于 /etc/php/{php_version}/apache2/php.ini(Apache)或 /etc/php/{php_version}/fpm/php.ini(Nginx)。使用文本编辑器打开它,例如使用 nano:

sudo nano /etc/php/{php_version}/apache2/php.ini

找到以下行:

log_error_format = "%t %f %l %E: %m%n"

你可以根据需要修改这个格式。例如,如果你想要在日志中包含日期、时间、文件名、行号、错误级别和错误消息,可以使用以下格式:

log_error_format = "%d-%m-%Y %H:%i:%s %F:%l %E: %m%n"

修改完成后,保存并关闭文件。重启 Apache 或 Nginx 以使更改生效:

sudo systemctl restart apache2
# 或者
sudo systemctl restart nginx
  1. 修改 Web 服务器配置文件:

对于 Apache,你可以在虚拟主机配置文件中添加 CustomLog 指令来自定义 PHP 错误日志格式。例如:

<VirtualHost *:80>
    # ...
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SetEnvIf Request_URI "\.php$" dontlog
    CustomLog ${APACHE_LOG_DIR}/error_php.log "%t %h %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{ERROR_FILE}e %{ERROR_LINE}e %{ERROR_MESSAGE}e" env=!dontlog
</VirtualHost>

对于 Nginx,你可以在 server 块中使用 error_logaccess_log 指令来自定义 PHP 错误日志格式。例如:

server {
    # ...
    error_log /var/log/nginx/error_php.log combined buffer=32k flush=300s;
    access_log /var/log/nginx/access_php.log combined buffer=32k flush=300s;

    location ~ \.php$ {
        # ...
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param ERROR_LOG_FORMAT "%t %h %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{ERROR_FILE}e %{ERROR_LINE}e %{ERROR_MESSAGE}e";
    }
}

修改完成后,保存并关闭文件。重启 Apache 或 Nginx 以使更改生效:

sudo systemctl restart apache2
# 或者
sudo systemctl restart nginx

这样,你就可以根据需要自定义 PHP 日志格式了。

0
看了该问题的人还看了