开启 Apache 的日志功能通常分为确认模块已加载、配置日志指令、重启服务几个步骤。下面以最常见的 Linux(Apache 2.x) 环境为例说明。
Apache 日志功能依赖以下模块(一般默认开启):
mod_log_config(核心日志模块)检查是否已加载:
apache2ctl -M | grep log_config
# 或
httpd -M | grep log_config
如果没有,编辑 Apache 主配置:
LoadModule log_config_module modules/mod_log_config.so
在虚拟主机或主配置文件中添加:
CustomLog ${APACHE_LOG_DIR}/access.log combined
combined 是常用日志格式,包含:
你也可以自定义格式:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog ${APACHE_LOG_DIR}/access.log common
错误日志默认就是开启的,若被关闭可手动开启:
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
日志级别(从低到高):
debug < info < notice < warn < error < crit < alert < emerg
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/html
CustomLog /var/www/logs/access.log combined
ErrorLog /var/www/logs/error.log
</VirtualHost>
# 检查配置
apachectl configtest
# 重启 Apache
systemctl restart apache2
# 或
systemctl restart httpd
tail -f /var/log/apache2/access.log
访问网站后应有日志输出。
如果你使用的是 Windows / XAMPP / WAMP / Docker,或想开启 按日期切割日志(rotatelogs),可以告诉我你的具体环境,我可以给你更针对性的配置。