logging
Set Formatter for Logger handler
With this example we are going to demonstrate how to set a Formatter for a Logger Handler. The Formatter is used by the Handler to format LogRecords. In short, to set a Formatter for a Logger’s handler you should:
- Create a new Logger instance with
getLogger(String name)
API method of Logger. - Create a new FileHandler to write to a specific file.
- Add the handler to the Logger, with
addHandler(Handler handler)
API method of Logger. - Set a Formatter to the Handler, with
setFormatter(Formatter newFormatter)
API method. In the example we use the SimpleFormatter and the XMLFormatter.
Let’s take a look at the code snippet that follows:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package com.javacodegeeks.snippets.core; import java.util.logging.FileHandler; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import java.util.logging.XMLFormatter; public class SetFormatterForLoggerHandler { public static void main(String[] args) throws Exception { boolean append = false ; FileHandler handler = new FileHandler( "default.log" , append); Logger logger = Logger.getLogger( "com.javacodegeeks.snippets.core" ); logger.addHandler(handler); handler.setFormatter( new SimpleFormatter()); logger.info( "simple formatter - info message" ); handler.setFormatter( new XMLFormatter()); logger.info( "xml formatter - info message" ); } } |
Output:
Nov 19, 2011 4:03:15 PM com.javacodegeeks.snippets.core.SetFormatterForLoggerHandler main
INFO: simple formatter - info message
Nov 19, 2011 4:03:15 PM com.javacodegeeks.snippets.core.SetFormatterForLoggerHandler main
INFO: xml formatter - info message
default.log
01 02 03 04 05 06 07 08 09 10 11 12 13 14 | Nov 19, 2011 4:03:15 PM com.javacodegeeks.snippets.core.SetFormatterForLoggerHandler main INFO: simple formatter - info message < record > < date >2011-11-19T16:03:15</ date > < millis >1321711395420</ millis > < sequence >1</ sequence > < logger >com.javacodegeeks.snippets.core</ logger > < level >INFO</ level > < class >com.javacodegeeks.snippets.core.SetFormatterForLoggerHandler</ class > < method >main</ method > < thread >10</ thread > < message >xml formatter - info message</ message > </ record > </ log > |
This was an example of how to set a Formatter for a Logger Handler in Java.