【问题标题】:Tomcat: Send Access Logs to Syslog Using LoggerTomcat:使用 Logger 将访问日志发送到 Syslog
【发布时间】:2014-08-08 21:37:10
【问题描述】:

我正在尝试使用记录器将事件发送到 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。我们更喜欢使用记录器,因为这不需要对我们的产品应用程序进行任何更改。

【问题讨论】:

    标签: tomcat logging access-log


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      简短回答:是的。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-07
        • 1970-01-01
        • 2015-10-02
        • 2015-02-15
        • 1970-01-01
        • 2019-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多