A logger is something needed by most applications. This is an example of a logger created with the Java Logging API included with Java 7. This example creates a static object so there is only once instance for the application.
You could improve the example to specify a file name for the log. A few comments are included in the code.
BlueLogger.java
Click to View Source 1 package com.blueskyworkshop.util;
2
3 import java.io.IOException;
4 import java.util.logging.FileHandler;
5 import java.util.logging.Logger;
6 import java.util.logging.SimpleFormatter;
7
8
9 public class BlueLogger {
10 private final static Logger log = Logger.getLogger("AppLog");
11 private static FileHandler fileHandler;
12
13 public static Logger getInstance(boolean xmlFormat){
14 addFileHandler(log, xmlFormat);
15 return log;
16 }
17
18 private static void addFileHandler(Logger log, boolean xmlFormat) {
19 try {
20 fileHandler = new FileHandler("App.log");
21 } catch (IOException ex) {
22 log.severe(ex.getMessage());
23 } catch (SecurityException ex) {
24 log.severe(ex.getMessage());
25 }
26 if (!(xmlFormat)) {
27 // If xmlFormat = true, Log file is in XML format.
28 // If xmlFormat = false, Log file is text only.
29 fileHandler.setFormatter(new SimpleFormatter());
30 }
31 log.addHandler(fileHandler);
32 }
33 }
Here is a test class for the logger.
BlueLoggerTest.java
Click to View Source 1 package com.blueskyworkshop.util;
2
3 import java.util.logging.Level;
4 import java.util.logging.Logger;
5
6 public class BlueLoggerTest {
7
8 public static void main(String[] args) {
9 // Use the XML Formatter
10 Logger appLog = BlueLogger.getInstance(true);
11
12 appLog.setLevel(Level.INFO); // Set the message level
13
14 // Here are some sample messages
15 appLog.severe("Severe error 01");
16 appLog.severe("Severe error 02");
17 appLog.warning("Warning 01");
18 appLog.info("info message");
19
20 }
21 }
And finally here is the log file created by running the test file.
App.log
Click to View Source 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!DOCTYPE log SYSTEM "logger.dtd">
3 <log>
4 <record>
5 <date>2012-07-20T18:33:05</date>
6 <millis>1342830785205</millis>
7 <sequence>0</sequence>
8 <logger>AppLog</logger>
9 <level>SEVERE</level>
10 <class>com.blueskyworkshop.util.BlueLoggerTest</class>
11 <method>main</method>
12 <thread>1</thread>
13 <message>Severe error 01</message>
14 </record>
15 <record>
16 <date>2012-07-20T18:33:05</date>
17 <millis>1342830785244</millis>
18 <sequence>1</sequence>
19 <logger>AppLog</logger>
20 <level>SEVERE</level>
21 <class>com.blueskyworkshop.util.BlueLoggerTest</class>
22 <method>main</method>
23 <thread>1</thread>
24 <message>Severe error 02</message>
25 </record>
26 <record>
27 <date>2012-07-20T18:33:05</date>
28 <millis>1342830785246</millis>
29 <sequence>2</sequence>
30 <logger>AppLog</logger>
31 <level>WARNING</level>
32 <class>com.blueskyworkshop.util.BlueLoggerTest</class>
33 <method>main</method>
34 <thread>1</thread>
35 <message>Warning 01</message>
36 </record>
37 <record>
38 <date>2012-07-20T18:33:05</date>
39 <millis>1342830785247</millis>
40 <sequence>3</sequence>
41 <logger>AppLog</logger>
42 <level>INFO</level>
43 <class>com.blueskyworkshop.util.BlueLoggerTest</class>
44 <method>main</method>
45 <thread>1</thread>
46 <message>info message</message>
47 </record>
48 </log>