apache 日志轮转通过 logrotate 工具配置,自定义日志格式使用 logformat 和 customlog 指令实现。1. 配置日志轮转需编辑 /etc/logrotate.d/apache2 或 httpd 文件,添加规则如 daily、rotate 14、compress 等参数,并设置 postrotate 重启 apache;2. 自定义日志格式需在 apache 配置文件中使用 logformat 定义格式字段,再通过 customlog 指定日志文件应用该格式;3. 注意事项包括测试 logrotate 运行、确保路径权限正确、避免日志过大或丢失新日志、根据分析工具支持选择合适格式字段。合理配置可节省磁盘空间并提升日志分析效率。

配置 Apache 日志轮转和自定义日志格式是运维中常见的需求,尤其是在服务器运行时间较长、访问量大的场景下。合理设置不仅能节省磁盘空间,还能提升日志分析的效率。
一、Apache 日志轮转怎么配置?
Apache 自身并不处理日志轮转,通常依靠的是系统自带的 logrotate 工具来完成。大多数 Linux 发行版都默认安装了这个工具。
基本操作步骤如下:
编辑 logrotate 配置文件
一般在/etc/logrotate.d/apache2或/etc/logrotate.d/httpd,具体取决于你的系统和 Apache 安装方式。-
添加或修改轮转规则
示例内容如下:/var/log/apache2/*.log { daily missingok rotate 14 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if /etc/init.d/apache2 status > /dev/null ; then \ /etc/init.d/apache2 reload > /dev/null; \ fi; endscript } -
说明各个参数的意思:
-
daily:每天轮转一次。 -
rotate 14:保留最近 14 天的日志。 -
compress:压缩旧日志。 -
notifempty:如果日志为空,就不轮转。 -
create:创建新的日志文件并设置权限。 -
postrotate ... endscript:在轮转后重新加载 Apache,确保日志写入新文件。
-
-
测试 logrotate 是否正常工作 可以用以下命令手动执行一次看看有没有报错:
logrotate -vf /etc/logrotate.d/apache2
二、Apache 日志格式怎么自定义?
Apache 提供了 LogFormat 和 CustomLog 指令来自定义日志格式,默认使用的通常是 combined 或 common 格式。
自定义格式的方法:
打开 Apache 配置文件
通常是/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf,也可能是在站点配置文件里(如/etc/apache2/sites-available/000-default.conf)。-
使用 LogFormat 定义格式名称和字段
示例:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined这是我们常见的 combined 格式,你可以根据需要增减字段,比如:
LogFormat "%h %t \"%r\" %>s %D" custom_format
其中:
-
%h:客户端 IP 地址 -
%t:时间戳 -
%r:请求首行 -
%>s:响应状态码 -
%D:处理请求所花的时间(单位微秒)
-
-
指定日志文件使用该格式
CustomLog /var/log/apache2/access.log custom_format
-
重载 Apache 配置生效
systemctl reload apache2
如果你正在用日志分析工具(如 AWStats、GoAccess),建议先了解它支持哪些字段格式,避免自定义后无法解析。
三、常见问题和注意事项
日志太大导致查看困难?
不只是轮转频率的问题,也可能是某些接口被频繁攻击或者爬虫刷流量。可以考虑加一条SetEnvIf来过滤掉一些无效请求再记录日志。轮转后日志没更新?
很可能是因为 Apache 没有 reload,logrotate 的postrotate部分一定要正确配置并测试。日志格式太简单影响排查?
如果你经常需要分析请求耗时、用户来源等信息,建议启用%D、%{Referer}i、%{User-Agent}i等字段。
基本上就这些。配置起来不算太复杂,但容易忽略细节,特别是权限、路径、服务重启这些地方。折腾一次之后,后续维护会轻松不少。










