我们有SVN通过Apache httpd运行。 对于身份validation,我们使用Active Directory,如果用户不在AD中,我们将回退到文件身份validation。 这工作正常,除了在文件身份validation的情况下的错误信息。 我们一遍又一遍的错误信息:
auth_ldap authenticate: user <user> authentication failed; URI /svn/some/uri [User not found][No such object]
我们想过滤掉这些消息,因为我们的日志文件由于这个不必要的日志消息而迅速增长。
很抱歉回答我自己的问题,但是我已经实施了一个解决scheme,我想与你分享,因为你帮助我,这对别人可能是有价值的。
基本上它很简单,我根本没有改变日志logging,我只是将日志轮换(/etc/logrotate.d/httpd)更改为:
/var/log/httpd/*log { compress compresscmd /usr/bin/bzip2 compressext .bz2 daily dateext maxage 31 rotate 14 size=+4096k notifempty missingok sharedscripts prerotate /bin/sed -i '/User not found/d' /var/log/httpd/*svn_error_log endscript postrotate /sbin/service httpd graceful > /dev/null 2>/dev/null || true endscript }
这样,每天都会从日志文件中删除所有误报。 日志文件的大小会减less,并且不会随着时间的推移而增长,因为文件在31天(最多)之后被删除。
假设目的是将这些日志过滤到不同的文件中,有几种方法可以解决这个问题。
ErrorLog发送到syslog,并根据inputlogin到不同的文件。 closuresLogLevel详细信息可能是一个坏主意,因为它会影响VirtualHost中的其他消息。 和LDAPLibraryDebug一样 ,我认为这些消息来自Apache而不是LDAP库。
您可以根本禁用错误日志消息。 就像是
ErrorLog / dev / null