在 Ubuntu 上,Apache(通常是 Apache2)的日志配置主要涉及错误日志(error log)和访问日志(access log),可以通过主配置文件或虚拟主机(VirtualHost)来配置。
下面按常见用法给你说明。
Ubuntu 下 Apache2 默认日志目录:
/var/log/apache2/
常见文件:
access.log:访问日志error.log:错误日志other_vhosts_access.log:其他虚拟主机访问日志Apache 主配置:
/etc/apache2/apache2.conf
虚拟主机配置:
/etc/apache2/sites-available/
/etc/apache2/sites-enabled/
日志相关模块:
mod_log_config(访问日志)mod_logio(可选)ErrorLog ${APACHE_LOG_DIR}/error.log
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog ${APACHE_LOG_DIR}/access.log common
说明:
ErrorLog:错误日志路径LogFormat:定义日志格式CustomLog:访问日志路径和格式示例 /etc/apache2/sites-available/example.conf:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
combined 是 Apache 内置格式,包含:
%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"
| 指令 | 含义 |
|---|---|
%h |
客户端 IP |
%l |
远程登录名(通常为 -) |
%u |
认证用户 |
%t |
时间 |
%r |
请求行 |
%>s |
响应状态码 |
%b |
响应字节数 |
%{Referer}i |
来源页 |
%{User-Agent}i |
浏览器 |
自定义示例:
LogFormat "%h %t \"%r\" %>s %b \"%{User-Agent}i\"" myfmt
CustomLog ${APACHE_LOG_DIR}/access.log myfmt
LogLevel warn
可选级别(从低到高):
debug
info
notice
warn
error
crit
alert
emerg
示例(调试用):
LogLevel debug
rotatelogsCustomLog "|/usr/bin/rotatelogs ${APACHE_LOG_DIR}/access_%Y%m%d.log 86400" combined
每天生成一个日志文件。
Ubuntu 已自带:
/etc/logrotate.d/apache2
一般无需手动改。
sudo apache2ctl configtest
sudo systemctl restart apache2
sites-enabled 是否启用error.logCustomLog /dev/null combined
如果你有具体需求(比如 按虚拟主机分离日志 / JSON 日志 / 性能分析 / 安全审计),可以告诉我,我可以直接给你一份完整配置。