2

我正在尝试使用记录器将事件发送到 Tomcat 中的本地系统日志服务器。

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

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

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

但是,我试图在 Tomcat 中使用 AccessLogValve,“模式”中的任何内容都被解释为字符串。

<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 主机。Logger for Apache 已部署到 prod。我们更喜欢使用记录器,因为这不需要对我们的产品应用程序进行任何更改。

4

2 回答 2

1

简短的回答:是的。

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

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

于 2015-04-13T08:15:44.827 回答
0

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

对于访问日志文件,Tomcat 不使用任何日志框架,只能将日志记录到文件中。唯一的解决方案是扩展AccessLogValve自己来做。

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

于 2014-06-18T17:06:33.790 回答