温馨提示×

ubuntu apache日志怎么配置

小樊
44
2026-09-21 19:12:04
栏目: 智能运维

在 Ubuntu 上,Apache(通常是 Apache2)的日志配置主要涉及错误日志(error log)和访问日志(access log),可以通过主配置文件或虚拟主机(VirtualHost)来配置。

下面按常见用法给你说明。


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

Ubuntu 下 Apache2 默认日志目录:

/var/log/apache2/

常见文件:

  • access.log:访问日志
  • error.log:错误日志
  • other_vhosts_access.log:其他虚拟主机访问日志

二、主配置文件位置

Apache 主配置:

/etc/apache2/apache2.conf

虚拟主机配置:

/etc/apache2/sites-available/
/etc/apache2/sites-enabled/

日志相关模块:

  • mod_log_config(访问日志)
  • mod_logio(可选)

三、基本日志配置方式

1️⃣ 全局日志(apache2.conf)

ErrorLog ${APACHE_LOG_DIR}/error.log

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

说明:

  • ErrorLog:错误日志路径
  • LogFormat:定义日志格式
  • CustomLog:访问日志路径和格式

2️⃣ 虚拟主机中配置日志(推荐)

示例 /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>

combined 是 Apache 内置格式,包含:

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

四、常用 LogFormat 说明

指令 含义
%h 客户端 IP
%l 远程登录名(通常为 -)
%u 认证用户
%t 时间
%r 请求行
%>s 响应状态码
%b 响应字节数
%{Referer}i 来源页
%{User-Agent}i 浏览器

自定义示例:

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

五、日志级别(错误日志)

LogLevel warn

可选级别(从低到高):

debug
info
notice
warn
error
crit
alert
emerg

示例(调试用):

LogLevel debug

六、按时间分割日志(推荐)

方法 1:使用 rotatelogs

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

每天生成一个日志文件。


方法 2:logrotate(Ubuntu 默认)

Ubuntu 已自带:

/etc/logrotate.d/apache2

一般无需手动改。


七、修改后操作

sudo apache2ctl configtest
sudo systemctl restart apache2

八、常见问题

1️⃣ 日志不生成?

  • 检查路径权限
  • 检查 sites-enabled 是否启用
  • 查看 error.log

2️⃣ 想关闭访问日志?

CustomLog /dev/null combined

如果你有具体需求(比如 按虚拟主机分离日志 / JSON 日志 / 性能分析 / 安全审计),可以告诉我,我可以直接给你一份完整配置。

0 踩