【问题标题】:Customizing log format in logging.properties在 logging.properties 中自定义日志格式
【发布时间】:2011-06-06 16:33:22
【问题描述】:

我需要一些指导来配置 Tomcat 7 中的日志格式。我在日志记录配置方面相对较新,所以如果这个问题看起来有点基本,请原谅这个问题......

使用在 Tomcat 中配置的 logging.properties 中的标准日志记录显示格式为:

Jun 6, 2011 9:27:00 AM com.class.Control_WS callWebService 
INFO: Response received from Control_WS:[Y]

我想自定义这些日志以压缩到一行,并扩展日期格式以包含毫秒。

例子:

[2011-05-04T11:37:00.037|INFO|javax.enterprise.system.stream.out|Response recieved from Control_WS:[Y]]

这是我可以使用 JUL 执行的操作还是需要切换到 LOG4J?

任何可以提供或指导的简单示例将不胜感激。

【问题讨论】:

    标签: java tomcat logging log4j java.util.logging


    【解决方案1】:

    如果您使用的是 Java 7(或更高版本 :-)),您不再需要为 java.util.logging (JUL) 创建自定义格式化程序类。在 Java 7 中有一个新属性 java.util.logging.SimpleFormatter.format,它控制 JUL 的 @987654321@ 如何打印信息。因此,只要您使用 SimpleFormatter(无论如何都是默认设置),那么这将起作用。

    一些陷阱:

    • 确保实际使用 Java 7。:-)
    • 确保使用有效的格式字符串。如果您提供的 format 无效,JUL 将静默恢复为默认格式(标准的丑陋两行)。

    【讨论】:

      【解决方案2】:

      看起来您可以通过创建一个扩展 Formatter 的自定义类来执行此操作,然后在您的 logging.properties 中将其指定为您的处理程序的格式化程序。例如,如果您使用的是 ConsoleHandler,您将使用以下代码:

      java.util.logging.ConsoleHandler.formatter = com.mycompany.MyFormatter
      

      然后将类文件(单独或放在 jar 中)放在 tomcat 的类路径中的某个位置。我会在里面创建一个罐子,然后把那个罐子放在${catalina.home}/lib/ext

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-04
        • 1970-01-01
        • 2018-12-08
        相关资源
        最近更新 更多