Customizing log format in logging.properties

cmutt78 picture cmutt78 · Jun 6, 2011 · Viewed 8.4k times · Source

I need some direction in configuring the log format in Tomcat 7. I am relatively new at logging configurations so please excuse humor this questions if it seems a bit basic...

Using the standard logging in Tomcat configured in logging.properties displays a log in the format of:

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

I would like to customize these logs to compress on to one line as well as expanding the date format to include milliseconds.

Example:

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

Is that something I can do using the JUL or do I need to switch to LOG4J?

Any simple examples that can be provided or direction would be much appreciated.

Answer

peterh picture peterh · Sep 26, 2012

If you are using Java 7 (or later :-)) you no longer have to create a custom formatter class for java.util.logging (JUL). In Java 7 there's a new property, java.util.logging.SimpleFormatter.format, which controls how JUL's SimpleFormatter prints the information. So as long as you are using SimpleFormatter (which is the default anyway) then this will work.

Some pitfalls:

  • Be sure to actually use Java 7. :-)
  • Be sure to use a valid format string. JUL will revert silently to the default format (the standard ugly two-liner) if the format you provide is invalid.