Java tutorial
import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.logging.XMLFormatter; class HTMLFormatter extends java.util.logging.Formatter { public String format(LogRecord record) { return ("<tr><td>" + (new Date(record.getMillis())).toString() + "</td><td>" + record.getMessage() + "</td></tr>\n"); } public String getHead(Handler h) { return ("<html>\n <body>\n" + "<Table border>\n<tr><td>Time</td><td>Log Message</td></tr>\n"); } public String getTail(Handler h) { return ("</table>\n</body>\n</html>"); } } public class LoggingHTMLFormatter { public static void main(String args[]) throws Exception { LogManager lm = LogManager.getLogManager(); Logger parentLogger, childLogger; FileHandler xml_handler = new FileHandler("log_output.xml"); FileHandler html_handler = new FileHandler("log_output.html"); parentLogger = Logger.getLogger("ParentLogger"); childLogger = Logger.getLogger("ParentLogger.ChildLogger"); lm.addLogger(parentLogger); lm.addLogger(childLogger); parentLogger.setLevel(Level.WARNING); childLogger.setLevel(Level.ALL); xml_handler.setFormatter(new XMLFormatter()); html_handler.setFormatter(new HTMLFormatter()); parentLogger.addHandler(xml_handler); childLogger.addHandler(html_handler); childLogger.log(Level.FINE, "This is a fine log message"); childLogger.log(Level.SEVERE, "This is a severe log message"); xml_handler.close(); html_handler.close(); } }