ConsoleHandler (Java SE 26 & JDK 26)
Description: declaration: module: java.logging, package: java.util.logging, class: ConsoleHandler
Keywords: java.util.logging.ConsoleHandler class

# Class ConsoleHandler

java.lang.Object
java.util.logging.Handler
java.util.logging.StreamHandler
java.util.logging.ConsoleHandler

public class ConsoleHandler extends StreamHandler
This `Handler` publishes log records to `System.err`. By default the `SimpleFormatter` is used to generate brief summaries.

Configuration: By default each `ConsoleHandler` is initialized using the following `LogManager` configuration properties where `<handler-name>` refers to the fully-qualified class name of the handler. If properties are not defined (or have invalid values) then the specified default values are used.

- <handler-name>.level specifies the default level for the `Handler` (defaults to `Level.INFO`).
- <handler-name>.filter specifies the name of a `Filter` class to use (defaults to no `Filter`).
- <handler-name>.formatter specifies the name of a `Formatter` class to use (defaults to `java.util.logging.SimpleFormatter`).
- <handler-name>.encoding the name of the character set encoding to use (defaults to the default platform encoding).

For example, the properties for `ConsoleHandler` would be:

- java.util.logging.ConsoleHandler.level=INFO
- java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

For a custom handler, e.g. com.foo.MyHandler, the properties would be:

- com.foo.MyHandler.level=INFO
- com.foo.MyHandler.formatter=java.util.logging.SimpleFormatter

Since:
  1.4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ConsoleHandler()`
  Create a `ConsoleHandler` for `System.err`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Override `StreamHandler.close` to do a flush but not to close the output stream.
  `void`
  `publish(LogRecord record)`
  Publish a `LogRecord`.

  ### Methods declared in class StreamHandler

  `flush, isLoggable, setEncoding, setOutputStream`
  Modifier and Type
  Method
  Description
  `void`
  `flush()`
  Flush any buffered messages.
  `boolean`
  `isLoggable(LogRecord record)`
  Check if this `Handler` would actually log a given `LogRecord`.
  `void`
  `setEncoding(String encoding)`
  Set (or change) the character encoding used by this `Handler`.
  `protected void`
  `setOutputStream(OutputStream out)`
  Change the output stream.

  ### Methods declared in class Handler

  `getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel`
  Modifier and Type
  Method
  Description
  `String`
  `getEncoding()`
  Return the character encoding for this `Handler`.
  `ErrorManager`
  `getErrorManager()`
  Retrieves the ErrorManager for this Handler.
  `Filter`
  `getFilter()`
  Get the current `Filter` for this `Handler`.
  `Formatter`
  `getFormatter()`
  Return the `Formatter` for this `Handler`.
  `Level`
  `getLevel()`
  Get the log level specifying which messages will be logged by this `Handler`.
  `protected void`
  `reportError(String msg, Exception ex, int code)`
  Protected convenience method to report an error to this Handler's ErrorManager.
  `void`
  `setErrorManager(ErrorManager em)`
  Define an ErrorManager for this Handler.
  `void`
  `setFilter(Filter newFilter)`
  Set a `Filter` to control output on this `Handler`.
  `void`
  `setFormatter(Formatter newFormatter)`
  Set a `Formatter`.
  `void`
  `setLevel(Level newLevel)`
  Set the log level specifying which message levels will be logged by this `Handler`.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### ConsoleHandler

    public ConsoleHandler()
    Create a `ConsoleHandler` for `System.err`.

    The `ConsoleHandler` is configured based on `LogManager` properties (or their default values).

- ## Method Details

  - ### publish

    public void publish(LogRecord record)
    Publish a `LogRecord`.

    The logging request was made initially to a `Logger` object, which initialized the `LogRecord` and forwarded it here.

    Overrides:
      `publish` in class `StreamHandler`
    Implementation Requirements:
      This method is not synchronized, and subclasses must not define overridden `publish()` methods to be `synchronized` if they call `super.publish()` or format user arguments. See the discussion in java.util.logging.Handler for more information.
    Parameters:
      `record` - description of the log event. A null record is silently ignored and is not published

  - ### close

    public void close()
    Override `StreamHandler.close` to do a flush but not to close the output stream. That is, we do not close `System.err`.
    Overrides:
      `close` in class `StreamHandler`