在logging.properties中自定义日志格式
我在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?
任何可以提供的简单示例或方向都将非常受欢迎。
如果您使用的是Java 7(或更高版本:-)),则不再需要为java.util.logging
(JUL)创建自定义格式化程序类。 在Java 7中有一个新属性java.util.logging.SimpleFormatter.format
,它控制JUL的SimpleFormatter
如何打印信息。 因此,只要您使用的是SimpleFormatter(无论如何都是默认设置),那么这将起作用。
一些陷阱:
- 一定要实际使用Java 7. 🙂
- 请务必使用有效的格式字符串。 如果您提供的格式无效,JUL将静默恢复为默认格式(标准丑陋的双线)。
看起来你会这样做是通过创建一个扩展Formatter的自定义类,然后在logging.properties中指定它作为处理程序的格式化程序。 例如,如果您使用的是ConsoleHandler ,则可以使用:
java.util.logging.ConsoleHandler.formatter = com.mycompany.MyFormatter
然后将类文件(自己或在jar中)放在tomcat的类路径中的某个位置。 我会在那里用它创建一个jar然后把它放在${catalina.home}/lib/ext