我有一个Apache httpd 2.2服务器。 我想用sysloglogging所有消息,以便将请求发送到我们的中央系统日志服务器。 我也希望确保所有的日志消息都被发送到本地磁盘上,以便系统pipe理员可以轻松访问本地系统上的日志文件。
很容易将HTTP访问日志发送到本地磁盘和系统日志。 一个常用的方法是:
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog logs/access_log combined CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined
但是这对于错误日志来说并不容易。 以下configuration不起作用,因为错误日志只使用最后一个ErrorLog节。 第一个ErrorLog节被忽略。
ErrorLog logs/error_log ErrorLog syslog:local4.error
我如何确保将Apache错误日志写入本地磁盘并发送到系统日志?
是否有可能做到这一点,而无需触摸/etc/syslog.conf ? 我很好,如果我的用户想要pipe理自己的Apacheconfiguration文件,但我不希望他们接触系统文件,如/etc/syslog.conf
尝试将所有ErrorLog发送到pipe道,例如perl脚本。 这个Perl脚本可以指向syslog和本地磁盘。
您可以使用:
ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"
做你以后的事情