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:
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
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.