首页 文章

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

提问于
浏览
9

我们希望将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

并在VirtualHost的apache站点 - 可用:

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

但我得到 "error in condition clause"

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

SetEnvIf expr .*404.* httpcode

并在CustomLog expr中调用它但没有工作 . 有人可以帮助我们吗?

谢谢 .

2 回答

  • -1

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

  • 4

    你可以参考Apache CustomLog Manual . 它说

    CustomLog指令用于记录对服务器的请求 . 指定了日志格式,并且可以选择使用环境变量使请求特征成为条件 . 第一个参数指定了日志的写入位置,可以采用以下两种类型的值之一:file A filename,相对于ServerRoot . pipe管道符“|”,后跟程序的路径,以接收有关其标准输入的日志信息 .

    因此,您可以指定程序路径而不是日志文件路径,并可以处理该程序的请求 . 你可以找到更多关于管道日志的信息here

相关问题