There may be occasions when you want to propagate log records to your own log handlers rather than participate in integrated logging.
To use a stand-alone log handler, set the useParentHandlers flag to false in your application.
The mechanism for creating a customer handler is the Handler class support that is provided by the IBM Developer Kit, Java Technology Edition. If you are not familiar with handlers, as implemented by the Developer Kit, you can get more information from various texts, or by reading the API documentation for the java.util.logging API. The following sample shows a custom handler:
import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.logging.Handler; import java.util.logging.LogRecord; /** * MyCustomHandler outputs contents to a specified file */ public class MyCustomHandler extends Handler { FileOutputStream fileOutputStream; PrintWriter printWriter; public MyCustomHandler(String filename) { super(); // check input parameter if (filename == null) filename = "mylogfile.txt"; try { // initialize the file fileOutputStream = new FileOutputStream(filename); printWriter = new PrintWriter(fileOutputStream); } catch (Exception e) { // implement exception handling... } } /* (non-API documentation) * @see java.util.logging.Handler#publish(java.util.logging.LogRecord) */ public void publish(LogRecord record) { // ensure that this log record should be logged by this Handler if (!isLoggable(record)) return; // Output the formatted data to the file printWriter.println(getFormatter().format(record)); } /* (non-API documentation) * @see java.util.logging.Handler#flush() */ public void flush() { printWriter.flush(); } /* (non-API documentation) * @see java.util.logging.Handler#close() */ public void close() throws SecurityException { printWriter.close(); } }
Related reference
Logger hierarchy
java.util.logging custom filters
java.util.logging custom formatters
Custom handlers, filters, and formatters
Searchable topic ID: rtrb_createhandler