我们希望将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中调用它但不起作用。有人可以帮助我们吗?
谢谢。
答案 0 :(得分:4)
如果安装自定义Apache模块SetEnvIfPlus,您的方法可行。这应该允许您使用ResponseSetEnvIfPlus
指令设置环境变量,然后使用该环境变量强制自定义日志文件。
答案 1 :(得分:-1)
您可以参考Apache CustomLog Manual。它说
CustomLog指令用于记录对服务器的请求。一个日志 指定了format,可以选择进行日志记录 使用环境变量以请求特征为条件。
第一个参数,指定日志的位置 将被写入,可以采取以下两种类型的值之一:
file一个文件名,相对于ServerRoot。管道管道字符 “|”,后跟程序的路径以接收日志信息 在其标准输入上。
因此,您可以指定程序路径而不是日志文件路径,并且可以处理该程序的请求。您可以找到有关管道日志here
的更多信息