在 Debian 上配置 Apache 的日志格式,主要涉及 修改 Apache 配置文件 并使用 LogFormat 指令。下面按常见场景说明。
Debian 下 Apache 通常是 Apache2,相关路径:
/etc/apache2//etc/apache2/apache2.conf/etc/apache2/sites-available//etc/apache2/conf-enabled/ 或 mods-enabled/Debian 默认已定义常见格式,例如在
/etc/apache2/apache2.conf 中常见:
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
combined:最常用(含 Referer / User-Agent)common:基础格式在 apache2.conf 或虚拟主机配置中加入:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" myformat
说明:
%D:请求处理时间(微秒)%b:响应字节数%t:时间编辑站点配置,例如:
sudo nano /etc/apache2/sites-available/000-default.conf
添加或修改:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
CustomLog ${APACHE_LOG_DIR}/access.log myformat
ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>
LogFormat "{ \
\"time\":\"%t\", \
\"remote\":\"%h\", \
\"request\":\"%r\", \
\"status\":\"%>s\", \
\"bytes\":\"%b\", \
\"user-agent\":\"%{User-Agent}i\" \
}" json
使用:
CustomLog ${APACHE_LOG_DIR}/access.log json
sudo apache2ctl configtest
sudo systemctl reload apache2
| 变量 | 含义 |
|---|---|
%h |
客户端 IP |
%u |
用户 |
%t |
时间 |
%r |
请求行 |
%>s |
状态码 |
%b |
字节数 |
%D |
耗时(μs) |
%{Referer}i |
来源 |
%{User-Agent}i |
浏览器 |
如果你有 具体格式需求(如 Nginx 风格、ELK、JSON、含真实 IP 等),可以直接发出来,我可以帮你写完整配置。