如何禁用Apache日志只是为了SVN

我有一个Apache作为HTTP服务器运行,也是由同一个Apache机器交付的SVN服务器。

configuration类似的东西

<Location /repos> DAV svn SVNParentPath /srv/repos </Location> 

我如何防止Apachelogging所有SVN“PROPFIND”和“OPTIONS”访问请求?

我以为没有办法做到这一点,但事实certificate可能有。 CustomLog指令可以查找是否存在环境variables以决定是否logging请求。 结合mod_rewrite来设置这个环境variables,我想你有你在找什么。

 RewriteEngine On RewriteCond %{REQUEST_METHOD} '^(OPTIONS|PROPFIND)$' RewriteRule ^/repos - [E=skiplog:1] CustomLog /log/file/path common env=!skiplog 

我没有testing过这个。 从我正在阅读的文档中,尽pipe这应该工作。

这与Rewrite方法类似,只是使用SetEnvIf指令在相关虚拟主机中标记OPTIONS和PROPFIND请求,然后将env规则添加到访问日志中,以将其从访问日志中排除。

 SetEnvIf Request_Method "OPTIONS" dontlog SetEnvIf Request_Method "PROPFIND" dontlog CustomLog /path/to/access_log combined env=!dontlog 

我们走这条路线,build立了一个连续的build立系统,过度投票。 实际上,我们正在改变事情,使用SVN post-commit挂钩来通知构build系统的变化。

你应该可以添加:

 ErrorLog /dev/null CustomLog /dev/null combined 

到你使用的任何虚拟主机容器。 如果你没有使用SVN的虚拟主机,你可能会很难做到这一点。