- /*
- * @(#)ConsoleHandler.java 1.9 03/01/23
- *
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
-
- package java.util.logging;
-
- import java.io.*;
- import java.net.*;
-
- /**
- * This <tt>Handler</tt> publishes log records to <tt>System.err</tt>.
- * By default the <tt>SimpleFormatter</tt> is used to generate brief summaries.
- * <p>
- * <b>Configuration:</b>
- * By default each <tt>ConsoleHandler</tt> is initialized using the following
- * <tt>LogManager</tt> configuration properties. If properties are not defined
- * (or have invalid values) then the specified default values are used.
- * <ul>
- * <li> java.util.logging.ConsoleHandler.level
- * specifies the default level for the <tt>Handler</tt>
- * (defaults to <tt>Level.INFO</tt>).
- * <li> java.util.logging.ConsoleHandler.filter
- * specifies the name of a <tt>Filter</tt> class to use
- * (defaults to no <tt>Filter</tt>).
- * <li> java.util.logging.ConsoleHandler.formatter
- * specifies the name of a <tt>Formatter</tt> class to use
- * (defaults to <tt>java.util.logging.SimpleFormatter</tt>).
- * <li> java.util.logging.ConsoleHandler.encoding
- * the name of the character set encoding to use (defaults to
- * the default platform encoding).
- * </ul>
- * <p>
- * @version 1.9, 01/23/03
- * @since 1.4
- */
-
- public class ConsoleHandler extends StreamHandler {
- // Private method to configure a ConsoleHandler from LogManager
- // properties and/or default values as specified in the class
- // javadoc.
- private void configure() {
- LogManager manager = LogManager.getLogManager();
- String cname = ConsoleHandler.class.getName();
-
- setLevel(manager.getLevelProperty(cname +".level", Level.INFO));
- setFilter(manager.getFilterProperty(cname +".filter", null));
- setFormatter(manager.getFormatterProperty(cname +".formatter", new SimpleFormatter()));
- try {
- setEncoding(manager.getStringProperty(cname +".encoding", null));
- } catch (Exception ex) {
- try {
- setEncoding(null);
- } catch (Exception ex2) {
- // doing a setEncoding with null should always work.
- // assert false;
- }
- }
- }
-
- /**
- * Create a <tt>ConsoleHandler</tt> for <tt>System.err</tt>.
- * <p>
- * The <tt>ConsoleHandler</tt> is configured based on
- * <tt>LogManager</tt> properties (or their default values).
- *
- */
- public ConsoleHandler() {
- sealed = false;
- configure();
- setOutputStream(System.err);
- sealed = true;
- }
-
- /**
- * Publish a <tt>LogRecord</tt>.
- * <p>
- * The logging request was made initially to a <tt>Logger</tt> object,
- * which initialized the <tt>LogRecord</tt> and forwarded it here.
- * <p>
- * @param record description of the log event
- */
- public void publish(LogRecord record) {
- super.publish(record);
- flush();
- }
-
- /**
- * Override <tt>StreamHandler.close</tt> to do a flush but not
- * to close the output stream. That is, we do <b>not</b>
- * close <tt>System.err</tt>.
- */
- public void close() {
- flush();
- }
- }
-