我想避免将一些丢失的文件(给出 404)记录到 Apache2 错误日志中。
我想在我的插件的 Eclipse 更新站点上执行此操作。问题是 Eclipse P2 代码尝试访问其元数据文件,如 content.xml、content.jar、digest.zip 和其他一些文件,这些文件在我的站点上不可用。当 P2 发现这一点时,它终于找到了我提供的 site.xml。总而言之,一切正常……但我有很多行,例如:
[Mon Jul 06 21:46:46 2009] [error] [client 195.91.79.90] File does not exist: ...htdocs/stable/content.jar
在我的 error.log 文件中,这对我没有多大帮助。
我想到的一个解决方案是让 Apache 通过 grep(通过管道日志记录)进行日志记录,但我正在寻找更好的解决方案。
我正在考虑使用SetEnvIf 指令标记这些请求,并跳过标记请求的错误日志,但 ErrorLog 指令不支持。
还有其他想法吗?
我找到了一个适合我的解决方案。我将这些行添加到 .htaccess 中:
它使用 mod_rewrite。R=404 表示当客户端访问任何提到的文件时发送 404 Not Found 状态代码。
RewriteCode 用于确保该文件确实不存在。如果我将其中一个文件放入目录中,它将照常提供。
这很好用:提到的文件不再登录到 error.log(这是我的目标),但仍然登录到访问日志(状态为 404)。
您可以使用mod_log_config进行条件日志记录
这将允许您使用环境变量。
此处不记录图像请求的示例。
将 LogLevel 提高到高于 error 以进行警告或暴击不是更容易吗?或者你有理由保持低吗?