Tomcat:使用Logger将访问日志发送到Syslog

时间:2014-06-18 14:23:07

标签: tomcat logging access-log

我尝试使用logger将事件发送到Tomcat中的本地syslog服务器。

在Apache中,您可以执行以下操作:

LogFormat "%h %A %l %u %t \"%r\" %>s %p %b" Events

CustomLog “|/usr/bin/logger -t httpd -p local6.info” Events

但是,我试图在Tomcat中使用AccessLogValve," pattern"被解释为一个字符串。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" rotatable="false" resolveHosts="false" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

无论如何在不使用log4j或logback的情况下将访问日志发送到syslog服务器?我们需要将此配置部署到Prod主机。已经部署了针对Apache的Logger for prod。我们更愿意使用记录器,因为这不需要更改我们的prod应用程序。

2 个答案:

答案 0 :(得分:0)

简短回答:不,你暂时不能。

对于访问日志文件,Tomcat不使用任何日志记录框架,只能登录到文件。 唯一的解决方案是扩展AccessLogValve以自行完成。

但是有一个pull request,如果被接受,应该允许任何人更容易地做到这一点。 (编辑:它实际上已经在tomcat-trunk中了,所以我相信tomcat8可用)

答案 1 :(得分:0)

简答:是的。

有一个类似的问题和答案: Tomcat access logging through log4j?

由于log4j内置了对syslog的支持,所以它可以做你想要的。