Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure the jdk14 logging's pattern

I guess I can chnage pattern by adding the line java.util.logging.ConsoleHandler.pattern, however where to check the pattern information like %u %h etc?

like image 992
user496949 Avatar asked Mar 24 '11 08:03

user496949


2 Answers

This question has already been answered by somebody, but i want to provide some new information:

Since Java 7 it is possible to configure the output pattern for log messages with the SimpleFormatter.

You can use this property in your logging properties file:

java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n

If you need more information on the pattern syntax have a look here: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html

The digits in the property value above refer to parameters provided to the formatter. Please refer to the official Java docs for more information: http://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html

Example configuration file logging.properties:

handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# Pattern works since Java 7
java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n

# Configure logging levels
# Available log levels are:
# OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL

# root logger
.level = WARNING

# child logger
org.example.level = ALL

When you call your java program you can specify your configuration file as parameter:

java -Djava.util.logging.config.file=logging.properties -jar myProgram.jar
like image 84
David Avatar answered Nov 01 '22 07:11

David


Edit: The below was written at the time for Java 6. For 7 and later, refer to David's answer below.

AFAIK there is no such property. There is a java.util.logging.FileHandler.pattern but this is to set the pattern of the output filename, not of the logging format.

The way you configure the output format in the util logging API is by setting the Formatter. By default, a SimpleFormatter is attached to your ConsoleHandler. This formatter simply hardcodes the pattern and doesn't allow you to set it.

If you need a different output format, you'll have to either implement your own Formatter, or use a different logging framework, such as logback.

like image 20
wds Avatar answered Nov 01 '22 07:11

wds