5

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

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

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?

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

4

2 回答 2

9

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

一些陷阱:

  • 确保实际使用 Java 7。:-)
  • 请务必使用有效的格式字符串。如果您提供的格式无效,JUL 将静默恢复为默认格式(标准的丑陋两行) 。
于 2012-09-26T12:10:38.047 回答
3

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

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

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

于 2011-10-27T18:59:03.033 回答