温馨提示×

ubuntu apache2怎么配置日志

小樊
40
2026-09-29 07:24:35
栏目: 智能运维

在 Ubuntu 上,Apache2 的日志配置主要通过主配置文件和虚拟主机(VirtualHost)配置来完成。下面从基础到常见用法给你讲清楚。


一、Apache2 日志文件位置(默认)

Ubuntu 中 Apache2 默认日志路径:

/var/log/apache2/
├── access.log      # 访问日志
├── error.log       # 错误日志
├── other_vhosts_access.log

二、核心日志配置指令

1️⃣ 错误日志(ErrorLog)

ErrorLog ${APACHE_LOG_DIR}/error.log
  • 记录服务器错误、PHP 错误、403/404 等
  • 可在全局或 VirtualHost 中配置

2️⃣ 访问日志(CustomLog)

CustomLog ${APACHE_LOG_DIR}/access.log combined

combined 是日志格式名(见下文)


三、日志格式(LogFormat)

查看已有格式:

grep -R "LogFormat" /etc/apache2/

默认格式示例:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

常用格式:

  • common
  • combined(最常用)
  • 自定义格式

四、全局配置示例

编辑主配置文件:

sudo nano /etc/apache2/apache2.conf

示例:

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog ${APACHE_LOG_DIR}/access.log common

五、虚拟主机(VirtualHost)日志配置(推荐)

编辑站点配置:

sudo nano /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>

启用站点:

sudo a2ensite example.conf
sudo systemctl reload apache2

六、日志级别(LogLevel)

LogLevel warn

可选:

  • emerg
  • alert
  • crit
  • error
  • warn(默认)
  • notice
  • info
  • debug

调试用:

LogLevel debug

七、按时间分割日志(rotatelog)

CustomLog "|/usr/bin/rotatelogs ${APACHE_LOG_DIR}/access.%Y-%m-%d.log 86400" combined

每天一个日志文件


八、日志轮转(logrotate)

Ubuntu 默认已配置:

/etc/logrotate.d/apache2

可修改保留天数:

sudo nano /etc/logrotate.d/apache2

九、常用排查命令

# 实时查看访问日志
tail -f /var/log/apache2/access.log

# 查看错误
tail -f /var/log/apache2/error.log

# 统计 404
grep " 404 " /var/log/apache2/access.log | wc -l

如果你愿意,我可以:

  • ✅ 帮你写完整 VirtualHost 日志配置
  • ✅ 配置 JSON 日志
  • ✅ 配置 按域名分离日志
  • ✅ 对接 ELK / Grafana

直接告诉我你的使用场景即可。

0 踩