要定制 Apache 日志格式,您需要修改 Apache 配置文件中的 LogFormat 指令
打开 Apache 配置文件。通常情况下,它位于 /etc/httpd/conf/httpd.conf(在 CentOS/RHEL 系统上)或 /etc/apache2/apache2.conf(在 Ubuntu/Debian 系统上)。如果您使用的是虚拟主机,您可能还需要编辑虚拟主机配置文件,例如 /etc/httpd/conf.d/vhost.conf 或 /etc/apache2/sites-available/yourdomain.com.conf。
在配置文件中找到 LogFormat 指令。如果没有找到,请在文件末尾添加它。LogFormat 指令允许您定义自定义日志格式。例如,以下是一个默认的日志格式:
LogFormat "%h %l %u %t \"%r\" %>s %b" combined
这里,%h 表示客户端 IP 地址,%l 表示远程登录名(通常为空),%u 表示已认证的用户名(通常为空),%t 表示请求时间,%r 表示请求行(包括请求方法、URL 和 HTTP 协议版本),%>s 表示响应状态码,%b 表示响应的字节数。
LogFormat 指令并为其指定一个名称和格式字符串。例如,以下是一个自定义日志格式,其中包括了客户端 IP 地址、请求时间、HTTP 引用页和用户代理:LogFormat "%h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" custom
保存更改并关闭配置文件。
重新启动 Apache 以使更改生效。在 CentOS/RHEL 上,您可以使用以下命令:
sudo systemctl restart httpd
在 Ubuntu/Debian 上,您可以使用以下命令:
sudo systemctl restart apache2
CustomLog 指令与您在第 3 步中定义的格式名称一起使用。例如:CustomLog /var/log/httpd/custom.log custom
或者,在 Ubuntu/Debian 上:
CustomLog /var/log/apache2/custom.log custom
这将把日志记录到指定的文件中,并使用您定义的自定义格式。