温馨提示×

ubuntu apache2怎样配置日志

小樊
46
2026-09-17 08:11:39
栏目: 智能运维

在 Ubuntu 上,Apache2 的日志配置主要通过主配置文件虚拟主机(VirtualHost)配置来完成。下面按常见场景给你说明。


一、Apache2 日志基本概念

Apache2 默认有两种日志:

  • 访问日志(Access Log):记录每一次请求
    默认路径:/var/log/apache2/access.log
  • 错误日志(Error Log):记录错误和警告
    默认路径:/var/log/apache2/error.log

二、全局日志配置(影响所有站点)

1. 主配置文件位置

/etc/apache2/apache2.conf

2. 常见全局配置项

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

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

说明:

  • ErrorLog:错误日志路径
  • LogLevel:日志级别(debug, info, notice, warn, error, crit)
  • LogFormat:定义日志格式
  • CustomLog:访问日志路径和格式

三、针对虚拟主机配置日志(推荐)

1. 虚拟主机配置文件位置

/etc/apache2/sites-available/your-site.conf

2. 示例配置

<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 内置格式,包含:

  • 客户端 IP
  • 时间
  • 请求
  • 状态码
  • User-Agent
  • Referer

四、自定义日志格式

1. 定义格式

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

2. 使用格式

CustomLog ${APACHE_LOG_DIR}/access.log myformat

五、按时间分割日志(rotatelogs)

1. 安装(通常已自带)

which rotatelogs

2. 使用示例(每天分割)

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

六、日志轮转(logrotate)

Ubuntu 默认使用 logrotate 管理 Apache 日志:

/etc/logrotate.d/apache2

通常无需修改,默认每周轮转并压缩。


七、配置后操作

sudo apache2ctl configtest
sudo systemctl restart apache2

八、常用排查命令

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

# 实时查看错误日志
tail -f /var/log/apache2/error.log

如果你有具体需求(比如:只记录某个 IP、关闭日志、JSON 格式日志、HTTPS 站点),可以告诉我,我可以给你针对性配置。

0