在apache中设置错误日志文件名以包括当前日期

时间:2009-07-16 10:50:44

标签: apache logging apache-config

我正在尝试让apache每天根据当前日期创建一个新的错误日志文件。 默认的错误日志文件名是这样的: ErrorLog“/logs/error.log”

我希望它是这样的: ErrorLog“/logs/error_$year$month$day.log”

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

查看Cronolog

  

cronolog是一个简单的过滤程序   从中读取日志文件条目   标准输入和写入每个条目   到a指定的输出文件   文件名模板和当前日期   和时间。当扩展文件名时   更改,当前文件已关闭   并开了一个新的。 cronolog是   打算一起使用   用Web服务器,比如Apache,来   将访问日志分成每日或   月度日志。

答案 1 :(得分:0)

我的方法是为apache配置 logrotate ,以便每天轮换一次apache的日志。

对于每个日志行都有日期信息的自定义日志:

%...{format}t:  The time, in the form given by format, which should
                be in strftime(3) format. (potentially localized)

您必须使用strftime(man 3 strftime)格式规则:

%F or its equivalent without dashes %Y%m%d

所以:

# CustomLog with explicit format string
CustomLog my_log "%{%Y%m%d}t %h %l %u %t \"%r\" %>s %b"

%{%Y%m%d} t 执行作业

答案 2 :(得分:0)

在httpd.conf中更改为

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

此配置将在错误日志文件达到5兆字节大小时轮换错误日志文件,并且将创建日志文件名称的后缀,格式为errorlog.YYYY-mm-dd-HH_MM_SS。