Apache 404错误记录到其他日志文件

时间:2014-01-23 17:05:20

标签: apache logging

我们希望将404未找到的错误分隔到不同的日志文件中。 现在我们写入此错误的日志文件(apache)位于“access.log”文件中。

我们希望在notfound.log中找到404未找到的错误

我在apache2.conf中进行了测试编写:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" notfound

在Apache网站的VirtualHost中可用:

CustomLog ${APACHE_LOG_DIR}/not-found.log notfound expr=.*404.*

但我在条件条款中“错误”

我也尝试在VirtualHost中设置一个env变量:

SetEnvIf expr .*404.* httpcode

并在CustomLog expr中调用它但不起作用。有人可以帮助我们吗?

谢谢。

2 个答案:

答案 0 :(得分:4)

如果安装自定义Apache模块SetEnvIfPlus,您的方法可行。这应该允许您使用ResponseSetEnvIfPlus指令设置环境变量,然后使用该环境变量强制自定义日志文件。

答案 1 :(得分:-1)

您可以参考Apache CustomLog Manual。它说

  

CustomLog指令用于记录对服务器的请求。一个日志   指定了format,可以选择进行日志记录   使用环境变量以请求特征为条件。

     

第一个参数,指定日志的位置   将被写入,可以采取以下两种类型的值之一:

     

file一个文件名,相对于ServerRoot。管道管道字符   “|”,后跟程序的路径以接收日志信息   在其标准输入上。

因此,您可以指定程序路径而不是日志文件路径,并且可以处理该程序的请求。您可以找到有关管道日志here

的更多信息