一、核心指令
每个虚拟主机里单独写这两行,就能生成独立日志:
apache
# 错误日志
ErrorLog "logs/站点名-error.log"
# 访问日志
CustomLog "logs/站点名-access.log" common
二、完整配置示例(直接复制)
Windows(XAMPP)
apache
# 站点1:www.site1.com
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot "D:/xampp/htdocs/site1"
# 独立日志
ErrorLog "logs/site1-error.log"
CustomLog "logs/site1-access.log" common
<Directory "D:/xampp/htdocs/site1">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# 站点2:www.site2.com
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot "D:/xampp/htdocs/site2"
# 独立日志
ErrorLog "logs/site2-error.log"
CustomLog "logs/site2-access.log" common
<Directory "D:/xampp/htdocs/site2">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Linux(CentOS / Ubuntu)
apache
# 站点1
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /var/www/site1
# 独立日志
ErrorLog /var/log/httpd/site1-error.log
CustomLog /var/log/httpd/site1-access.log common
<Directory /var/www/site1>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
三、日志文件在哪里?
Windows(XAMPP)
plaintext
xampp/apache/logs/
里面会看到:
- site1-error.log
- site1-access.log
- site2-error.log
- site2-access.log
Linux
plaintext
/var/log/httpd/
# 或
/var/log/apache2/
四、日志格式说明(最常用)
- common:标准格式(IP、时间、请求、状态码)
- combined:更详细(包含来源页面、浏览器)
apache
CustomLog "logs/site1-access.log" combined
五、重启 Apache 生效
- Windows:Stop → Start
- Linux:
bash
运行
systemctl restart httpd
# 或
systemctl restart apache2
六、最常见问题
- 日志不生成
路径写错 / 没有文件夹权限
- 所有站点日志混在一起
没有在每个
<VirtualHost>里单独写日志配置
总结
- 每个虚拟主机内部加
ErrorLog和CustomLog - 日志文件名区分开(site1、site2)
- 重启 Apache → 自动生成独立日志文件