Module java.base
Package java.lang

## Interface System.Logger

- Enclosing class:
    System

      public static interface System.Logger

  `System.Logger` instances log messages that will be routed to the underlying logging framework the `LoggerFinder` uses. `System.Logger` instances are typically obtained from the `System` class, by calling `System.getLogger(loggerName)` or `System.getLogger(loggerName, bundle)`.
  Since:
    9
  See Also:
    `System.getLogger(java.lang.String)`, `System.getLogger(java.lang.String, java.util.ResourceBundle)`, `System.LoggerFinder`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `System.Logger.Level` | System loggers levels.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getName()` | Returns the name of this logger.
    `boolean` | `isLoggable​(System.Logger.Level level)` | Checks if a message of the given level would be logged by this logger.
    `default void` | `log​(System.Logger.Level level, Object obj)` | Logs a message produced from the given object.
    `default void` | `log​(System.Logger.Level level, String msg)` | Logs a message.
    `default void` | `log​(System.Logger.Level level, String format, Object... params)` | Logs a message with an optional list of parameters.
    `default void` | `log​(System.Logger.Level level, String msg, Throwable thrown)` | Logs a message associated with a given throwable.
    `default void` | `log​(System.Logger.Level level, Supplier<String> msgSupplier)` | Logs a lazily supplied message.
    `default void` | `log​(System.Logger.Level level, Supplier<String> msgSupplier, Throwable thrown)` | Logs a lazily supplied message associated with a given throwable.
    `void` | `log​(System.Logger.Level level, ResourceBundle bundle, String format, Object... params)` | Logs a message with resource bundle and an optional list of parameters.
    `void` | `log​(System.Logger.Level level, ResourceBundle bundle, String msg, Throwable thrown)` | Logs a localized message associated with a given throwable.

- - ### Method Detail

    - #### getName

          String getName()

      Returns the name of this logger.
      Returns:
        the logger name.

    - #### isLoggable

          boolean isLoggable​(System.Logger.Level level)

      Checks if a message of the given level would be logged by this logger.
      Parameters:
        `level` - the log message level.
      Returns:
        `true` if the given log message level is currently being logged.
      Throws:
        `NullPointerException` - if `level` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           String msg)

      Logs a message.
      Implementation Requirements:
        The default implementation for this method calls `this.log(level, (ResourceBundle)null, msg, (Object[])null);`
      Parameters:
        `level` - the log message level.
        `msg` - the string message (or a key in the message catalog, if this logger is a `localized logger`); can be `null`.
      Throws:
        `NullPointerException` - if `level` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           Supplier<String> msgSupplier)

      Logs a lazily supplied message. If the logger is currently enabled for the given log message level then a message is logged that is the result produced by the given supplier function. Otherwise, the supplier is not operated on.
      Implementation Requirements:
        When logging is enabled for the given level, the default implementation for this method calls `this.log(level, (ResourceBundle)null, msgSupplier.get(), (Object[])null);`
      Parameters:
        `level` - the log message level.
        `msgSupplier` - a supplier function that produces a message.
      Throws:
        `NullPointerException` - if `level` is `null`, or `msgSupplier` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           Object obj)

      Logs a message produced from the given object. If the logger is currently enabled for the given log message level then a message is logged that, by default, is the result produced from calling toString on the given object. Otherwise, the object is not operated on.
      Implementation Requirements:
        When logging is enabled for the given level, the default implementation for this method calls `this.log(level, (ResourceBundle)null, obj.toString(), (Object[])null);`
      Parameters:
        `level` - the log message level.
        `obj` - the object to log.
      Throws:
        `NullPointerException` - if `level` is `null`, or `obj` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           String msg,
                           Throwable thrown)

      Logs a message associated with a given throwable.
      Implementation Requirements:
        The default implementation for this method calls `this.log(level, (ResourceBundle)null, msg, thrown);`
      Parameters:
        `level` - the log message level.
        `msg` - the string message (or a key in the message catalog, if this logger is a `localized logger`); can be `null`.
        `thrown` - a `Throwable` associated with the log message; can be `null`.
      Throws:
        `NullPointerException` - if `level` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           Supplier<String> msgSupplier,
                           Throwable thrown)

      Logs a lazily supplied message associated with a given throwable. If the logger is currently enabled for the given log message level then a message is logged that is the result produced by the given supplier function. Otherwise, the supplier is not operated on.
      Implementation Requirements:
        When logging is enabled for the given level, the default implementation for this method calls `this.log(level, (ResourceBundle)null, msgSupplier.get(), thrown);`
      Parameters:
        `level` - one of the log message level identifiers.
        `msgSupplier` - a supplier function that produces a message.
        `thrown` - a `Throwable` associated with log message; can be `null`.
      Throws:
        `NullPointerException` - if `level` is `null`, or `msgSupplier` is `null`.

    - #### log

          default void log​(System.Logger.Level level,
                           String format,
                           Object... params)

      Logs a message with an optional list of parameters.
      Implementation Requirements:
        The default implementation for this method calls `this.log(level, (ResourceBundle)null, format, params);`
      Parameters:
        `level` - one of the log message level identifiers.
        `format` - the string message format in `MessageFormat` format, (or a key in the message catalog, if this logger is a `localized logger`); can be `null`.
        `params` - an optional list of parameters to the message (may be none).
      Throws:
        `NullPointerException` - if `level` is `null`.

    - #### log

          void log​(System.Logger.Level level,
                   ResourceBundle bundle,
                   String msg,
                   Throwable thrown)

      Logs a localized message associated with a given throwable. If the given resource bundle is non-`null`, the `msg` string is localized using the given resource bundle. Otherwise the `msg` string is not localized.
      Parameters:
        `level` - the log message level.
        `bundle` - a resource bundle to localize `msg`; can be `null`.
        `msg` - the string message (or a key in the message catalog, if `bundle` is not `null`); can be `null`.
        `thrown` - a `Throwable` associated with the log message; can be `null`.
      Throws:
        `NullPointerException` - if `level` is `null`.

    - #### log

          void log​(System.Logger.Level level,
                   ResourceBundle bundle,
                   String format,
                   Object... params)

      Logs a message with resource bundle and an optional list of parameters. If the given resource bundle is non-`null`, the `format` string is localized using the given resource bundle. Otherwise the `format` string is not localized.
      Parameters:
        `level` - the log message level.
        `bundle` - a resource bundle to localize `format`; can be `null`.
        `format` - the string message format in `MessageFormat` format, (or a key in the message catalog if `bundle` is not `null`); can be `null`.
        `params` - an optional list of parameters to the message (may be none).
      Throws:
        `NullPointerException` - if `level` is `null`.