温馨提示×

怎样设置apache2日志

小樊
45
2026-10-11 01:30:35
栏目: 编程语言

下面以 Linux(Debian/Ubuntu)下的 Apache2 为例,说明如何设置 Apache2 的日志(访问日志和错误日志)。


一、Apache2 日志类型

Apache2 主要有两类日志:

  1. 访问日志(Access Log)
    记录每一次 HTTP 请求
    默认文件:/var/log/apache2/access.log

  2. 错误日志(Error Log)
    记录服务器运行错误、PHP 错误等
    默认文件:/var/log/apache2/error.log


二、全局日志设置(主配置文件)

配置文件位置(常见):

  • Debian/Ubuntu:/etc/apache2/apache2.conf
  • 或:/etc/apache2/conf-enabled/

1. 设置错误日志

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn

LogLevel 可选值(由少到多):

emerg alert crit error warn notice info debug

2. 设置访问日志格式

Apache 使用 LogFormat 定义格式:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined

常见格式:

  • common
  • combined(最常用)

三、针对虚拟主机(VirtualHost)设置日志

编辑虚拟主机配置(如 /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>

这样可以为每个站点单独设置日志。


四、按时间切割日志(推荐)

Apache 自带 rotatelogs 工具:

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

说明:

  • 86400 = 一天(秒)
  • 每天生成一个新日志文件

五、日志轮转(logrotate)

Debian/Ubuntu 默认已配置:

/etc/logrotate.d/apache2

可查看或调整:

cat /etc/logrotate.d/apache2

六、常见操作命令

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

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

# 修改配置后重载
systemctl reload apache2

七、调试建议

如果你遇到:

  • 页面 500 错误 → 看 error.log
  • 请求没进来 → 看 access.log
  • PHP 报错 → 确保 LogLevel 不低于 warn

如果你愿意,可以告诉我:

  • 你的系统(Ubuntu / CentOS / Docker)
  • 是否使用虚拟主机
  • 想记录什么内容(IP、时间、POST 数据等)

我可以给你更精确的配置示例。

0 踩