Package org.apache.ignite

## Interface IgniteLogger

- All Known Implementing Classes:
    `JavaLogger`, `JclLogger`, `Log4J2Logger`, `NullLogger`, `Slf4jLogger`

      @GridToStringExclude
      public interface IgniteLogger

  This interface defines basic logging functionality used throughout the system. We had to abstract it out so that we can use whatever logging is used by the hosting environment. Currently, log4j2, JBoss, JCL and console logging are provided as supported implementations.

  Ignite logger could be configured either from code (for example log4j2 logger):

            IgniteConfiguration cfg = new IgniteConfiguration();
            ...
            URL xml = U.resolveIgniteUrl("config/custom-log4j.xml");
            IgniteLogger log = new Log4J2Logger(xml);
            ...
            cfg.setGridLogger(log);

  or in grid configuration file (see JCL logger example below):

            ...
            <property name="gridLogger">
                <bean class="org.apache.ignite.logger.jcl.JclLogger">
                    <constructor-arg type="org.apache.commons.logging.Log">
                        <bean class="org.apache.commons.logging.impl.Log4J2Logger">
                            <constructor-arg type="java.lang.String" value="config/ignite-log4j.xml"/>
                        </bean>
                    </constructor-arg>
                </bean>
            </property>
            ...

  It's recommended to use Ignite's logger injection instead of using/instantiating logger in your task/job code. See `LoggerResource` annotation about logger injection.

  # Quiet Mode

  By default Ignite starts in "quiet" mode suppressing `INFO` and `DEBUG` log output. If system property `IGNITE_QUIET` is set to `false` than Ignition will operate in normal un-suppressed logging mode. Note that all output in "quiet" mode is done through standard output (STDOUT).

  Note that Ignite's standard startup scripts `$IGNITE_HOME/bin/ignite.{sh|bat}` start by default in "quiet" mode. Both scripts accept `-v` arguments to turn off "quiet" mode.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `DEV_ONLY` | Marker for log messages that are useful in development environments, but not in production.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default void` | `debug​(@Nullable String marker, String msg)` | Logs out debug message.
    `void` | `debug​(String msg)` | Logs out debug message.
    `default void` | `error​(@Nullable String marker, String msg, @Nullable Throwable e)` | Logs error message with optional exception.
    `default void` | `error​(String msg)` | Logs out error message.
    `void` | `error​(String msg, @Nullable Throwable e)` | Logs error message with optional exception.
    `String` | `fileName()` | Gets name of the file being logged to if one is configured or `null` otherwise.
    `IgniteLogger` | `getLogger​(Object ctgr)` | Creates new logger with given category based off the current instance.
    `default void` | `info​(@Nullable String marker, String msg)` | Logs out information message.
    `void` | `info​(String msg)` | Logs out information message.
    `boolean` | `isDebugEnabled()` | Tests whether `debug` level is enabled.
    `boolean` | `isInfoEnabled()` | Tests whether `info` level is enabled.
    `boolean` | `isQuiet()` | Tests whether Logger is in "Quiet mode".
    `boolean` | `isTraceEnabled()` | Tests whether `trace` level is enabled.
    `default void` | `trace​(@Nullable String marker, String msg)` | Logs out trace message.
    `void` | `trace​(String msg)` | Logs out trace message.
    `default void` | `warning​(@Nullable String marker, String msg, @Nullable Throwable e)` | Logs out warning message with optional exception.
    `default void` | `warning​(String msg)` | Logs out warning message.
    `void` | `warning​(String msg, @Nullable Throwable e)` | Logs out warning message with optional exception.

- - ### Field Detail

    - #### DEV_ONLY

          static final String DEV_ONLY

      Marker for log messages that are useful in development environments, but not in production.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getLogger

          IgniteLogger getLogger​(Object ctgr)

      Creates new logger with given category based off the current instance.
      Parameters:
        `ctgr` - Category for new logger.
      Returns:
        New logger with given category.

    - #### trace

          void trace​(String msg)

      Logs out trace message.
      Parameters:
        `msg` - Trace message.

    - #### trace

          default void trace​(@Nullable
                             @Nullable String marker,
                             String msg)

      Logs out trace message. The default implementation calls `this.trace(msg)`.
      Parameters:
        `marker` - Name of the marker to be associated with the message.
        `msg` - Trace message.

    - #### debug

          void debug​(String msg)

      Logs out debug message.
      Parameters:
        `msg` - Debug message.

    - #### debug

          default void debug​(@Nullable
                             @Nullable String marker,
                             String msg)

      Logs out debug message. The default implementation calls `this.debug(msg)`.
      Parameters:
        `marker` - Name of the marker to be associated with the message.
        `msg` - Debug message.

    - #### info

          void info​(String msg)

      Logs out information message.
      Parameters:
        `msg` - Information message.

    - #### info

          default void info​(@Nullable
                            @Nullable String marker,
                            String msg)

      Logs out information message. The default implementation calls `this.info(msg)`.
      Parameters:
        `marker` - Name of the marker to be associated with the message.
        `msg` - Information message.

    - #### warning

          default void warning​(String msg)

      Logs out warning message.
      Parameters:
        `msg` - Warning message.

    - #### warning

          void warning​(String msg,
                       @Nullable
                       @Nullable Throwable e)

      Logs out warning message with optional exception.
      Parameters:
        `msg` - Warning message.
        `e` - Optional exception (can be `null`).

    - #### warning

          default void warning​(@Nullable
                               @Nullable String marker,
                               String msg,
                               @Nullable
                               @Nullable Throwable e)

      Logs out warning message with optional exception. The default implementation calls `this.warning(msg)`.
      Parameters:
        `marker` - Name of the marker to be associated with the message.
        `msg` - Warning message.
        `e` - Optional exception (can be `null`).

    - #### error

          default void error​(String msg)

      Logs out error message.
      Parameters:
        `msg` - Error message.

    - #### error

          void error​(String msg,
                     @Nullable
                     @Nullable Throwable e)

      Logs error message with optional exception.
      Parameters:
        `msg` - Error message.
        `e` - Optional exception (can be `null`).

    - #### error

          default void error​(@Nullable
                             @Nullable String marker,
                             String msg,
                             @Nullable
                             @Nullable Throwable e)

      Logs error message with optional exception. The default implementation calls `this.error(msg)`.
      Parameters:
        `marker` - Name of the marker to be associated with the message.
        `msg` - Error message.
        `e` - Optional exception (can be `null`).

    - #### isTraceEnabled

          boolean isTraceEnabled()

      Tests whether `trace` level is enabled.
      Returns:
        `true` in case when `trace` level is enabled, `false` otherwise.

    - #### isDebugEnabled

          boolean isDebugEnabled()

      Tests whether `debug` level is enabled.
      Returns:
        `true` in case when `debug` level is enabled, `false` otherwise.

    - #### isInfoEnabled

          boolean isInfoEnabled()

      Tests whether `info` level is enabled.
      Returns:
        `true` in case when `info` level is enabled, `false` otherwise.

    - #### isQuiet

          boolean isQuiet()

      Tests whether Logger is in "Quiet mode".
      Returns:
        `true` "Quiet mode" is enabled, `false` otherwise

    - #### fileName

          String fileName()

      Gets name of the file being logged to if one is configured or `null` otherwise.
      Returns:
        Name of the file being logged to if one is configured or `null` otherwise.