在 Tomcat 9.0.X catalina.out 日志中显示日期和时间

Posted

技术标签:

【中文标题】在 Tomcat 9.0.X catalina.out 日志中显示日期和时间【英文标题】:display date and time in Tomcat 9.0.X catalina.out log 【发布时间】:2021-12-08 06:27:26 【问题描述】:

我有一个 Tomcat 9.0.54 安装,与 Apache Guacamole 一起使用。我的默认 catalina.out 日志文件格式仅包含时间而不包含日期。它看起来像这样:

04:37:05.132 [http-nio-8080-exec-12] INFO  o.a.g.tunnel.TunnelRequestService - User "abc" connected to connection "16".'

我在网上看到更新日志格式的正确方法是在 conf/logging.properties 中添加这一行:

org.apache.juli.OneLineFormatter.timeFormat = yyyy-MM-dd HH:mm:ss,SSSZ

...在 logging.properties 中现有的 3 行之后:

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

我这样做了,重启后我的日志格式仍然没有日期。

我的 catalina.out 确实显示启动时正在读取正确的 logging.properties 文件。我没有发现任何错误。

我的 Tomcat 安装与默认设置相比几乎没有什么变化。例如,我的 catalina.properties 只添加:

guacamole.home=/local/guacamole

我错过了什么!?

【问题讨论】:

catalina.out 包含 Tomcat 服务器的标准输出,因此许多不同的日志框架都会写入它。 Guacamole 使用 LogBack(参见documentation),所以修改logging.properties 将无效。 【参考方案1】:

Piotr,谢谢你 - 你说得对 - 对于任何有兴趣的人,我在我的 guacamole home 目录中添加了一个 logback.xml 文件,其中包含类似于他们默认的内容,但添加了日期......

<configuration>

    <!-- Default appender -->
    <appender name="GUAC-DEFAULT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%dateyyyy-MM-dd HH:mm:ss.SSSZ [%thread] %-5level %logger36 - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log at INFO level -->
    <root level="info">
        <appender-ref ref="GUAC-DEFAULT" />
    </root>

</configuration>

【讨论】:

以上是关于在 Tomcat 9.0.X catalina.out 日志中显示日期和时间的主要内容,如果未能解决你的问题,请参考以下文章

tomcat8.5日志打印无故中断?

安全加固-浅谈Tomcat升级

Tomcat下载安装经验教程

Tomcat下载安装经验教程

Linux自带发送邮件的方法

在 IntelliJ IDEA 9.0.x 中创建 Grails 应用程序无法提示“create-app”