Class Log4J2Logger

  • All Implemented Interfaces:
    IgniteLogger, org.apache.ignite.internal.logger.IgniteLoggerEx

    public class Log4J2Logger
    extends Object
    implements org.apache.ignite.internal.logger.IgniteLoggerEx
    Log4j2-based implementation for logging. This logger should be used by loaders that have prefer log4j2-based logging.

    Here is a typical example of configuring log4j2 logger in Ignite configuration file:

          <property name="gridLogger">
              <bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
                  <constructor-arg type="java.lang.String" value="config/ignite-log4j.xml"/>
              </bean>
          </property>
     
    and from your code:
          IgniteConfiguration cfg = new IgniteConfiguration();
          ...
          URL xml = U.resolveIgniteUrl("config/custom-log4j2.xml");
          IgniteLogger log = new Log4J2Logger(xml);
          ...
          cfg.setGridLogger(log);
     
    Please take a look at Apache Log4j 2 for additional information.

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

    • Constructor Detail

      • Log4J2Logger

        public Log4J2Logger()
        Creates new logger and automatically detects if root logger already has appenders configured. If it does not, the root logger will be configured with default appender, otherwise, existing appenders will be used.
      • Log4J2Logger

        public Log4J2Logger​(String path)
                     throws IgniteCheckedException
        Creates new logger with given configuration path.
        Parameters:
        path - Path to log4j2 configuration XML file.
        Throws:
        IgniteCheckedException - Thrown in case logger can't be created.
      • Log4J2Logger

        public Log4J2Logger​(File cfgFile)
                     throws IgniteCheckedException
        Creates new logger with given configuration cfgFile.
        Parameters:
        cfgFile - Log4j configuration XML file.
        Throws:
        IgniteCheckedException - Thrown in case logger can't be created.
      • Log4J2Logger

        public Log4J2Logger​(URL cfgUrl)
                     throws IgniteCheckedException
        Creates new logger with given configuration cfgUrl.
        Parameters:
        cfgUrl - URL for Log4j configuration XML file.
        Throws:
        IgniteCheckedException - Thrown in case logger can't be created.
    • Method Detail

      • fileName

        @Nullable
        public @Nullable String fileName()
        Gets name of the file being logged to if one is configured or null otherwise.
        Specified by:
        fileName in interface IgniteLogger
        Returns:
        Name of the file being logged to if one is configured or null otherwise.
      • addConsoleAppender

        public void addConsoleAppender​(boolean clearOutput)
        Adds console appender to the logger.
        Specified by:
        addConsoleAppender in interface org.apache.ignite.internal.logger.IgniteLoggerEx
        Parameters:
        clearOutput - If true then console output must be configured without any additional info like time, message level, thread info, etc.
      • flush

        public void flush()
        Flush any buffered output.
        Specified by:
        flush in interface org.apache.ignite.internal.logger.IgniteLoggerEx
      • configureConsoleAppender

        public org.apache.logging.log4j.Logger configureConsoleAppender​(boolean clearOutput)
        Creates console appender with some reasonable default logging settings.
        Parameters:
        clearOutput - If true then console output must be configured without any additional info like time, message level, thread info, etc.
        Returns:
        Logger with auto configured console appender.
      • isConfigured

        public static boolean isConfigured()
        Checks if Log4j is already configured within this VM or not.
        Returns:
        True if log4j was already configured, false otherwise.
      • setApplicationAndNode

        public void setApplicationAndNode​(@Nullable
                                          @Nullable String application,
                                          @Nullable
                                          @Nullable UUID nodeId)
        Sets application name and node ID.
        Specified by:
        setApplicationAndNode in interface org.apache.ignite.internal.logger.IgniteLoggerEx
        Parameters:
        application - Application.
        nodeId - Node ID.
      • getLogger

        public Log4J2Logger getLogger​(Object ctgr)
        Gets IgniteLogger wrapper around log4j logger for the given category. If category is null, then root logger is returned. If category is an instance of Class then (Class)ctgr).getName() is used as category name.
        Specified by:
        getLogger in interface IgniteLogger
        Parameters:
        ctgr - Category for new logger.
        Returns:
        IgniteLogger wrapper around log4j logger.
      • trace

        public void trace​(String msg)
        Logs out trace message.
        Specified by:
        trace in interface IgniteLogger
        Parameters:
        msg - Trace message.
      • trace

        public void trace​(@Nullable
                          @Nullable String marker,
                          String msg)
        Logs out trace message. The default implementation calls this.trace(msg).
        Specified by:
        trace in interface IgniteLogger
        Parameters:
        marker - Name of the marker to be associated with the message.
        msg - Trace message.
      • debug

        public void debug​(String msg)
        Logs out debug message.
        Specified by:
        debug in interface IgniteLogger
        Parameters:
        msg - Debug message.
      • debug

        public void debug​(@Nullable
                          @Nullable String marker,
                          String msg)
        Logs out debug message. The default implementation calls this.debug(msg).
        Specified by:
        debug in interface IgniteLogger
        Parameters:
        marker - Name of the marker to be associated with the message.
        msg - Debug message.
      • info

        public void info​(String msg)
        Logs out information message.
        Specified by:
        info in interface IgniteLogger
        Parameters:
        msg - Information message.
      • info

        public void info​(@Nullable
                         @Nullable String marker,
                         String msg)
        Logs out information message. The default implementation calls this.info(msg).
        Specified by:
        info in interface IgniteLogger
        Parameters:
        marker - Name of the marker to be associated with the message.
        msg - Information message.
      • warning

        public void warning​(String msg,
                            @Nullable
                            @Nullable Throwable e)
        Logs out warning message with optional exception.
        Specified by:
        warning in interface IgniteLogger
        Parameters:
        msg - Warning message.
        e - Optional exception (can be null).
      • warning

        public 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).
        Specified by:
        warning in interface IgniteLogger
        Parameters:
        marker - Name of the marker to be associated with the message.
        msg - Warning message.
        e - Optional exception (can be null).
      • error

        public void error​(String msg,
                          @Nullable
                          @Nullable Throwable e)
        Logs error message with optional exception.
        Specified by:
        error in interface IgniteLogger
        Parameters:
        msg - Error message.
        e - Optional exception (can be null).
      • error

        public 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).
        Specified by:
        error in interface IgniteLogger
        Parameters:
        marker - Name of the marker to be associated with the message.
        msg - Error message.
        e - Optional exception (can be null).
      • isTraceEnabled

        public boolean isTraceEnabled()
        Tests whether trace level is enabled.
        Specified by:
        isTraceEnabled in interface IgniteLogger
        Returns:
        true in case when trace level is enabled, false otherwise.
      • isDebugEnabled

        public boolean isDebugEnabled()
        Tests whether debug level is enabled.
        Specified by:
        isDebugEnabled in interface IgniteLogger
        Returns:
        true in case when debug level is enabled, false otherwise.
      • isInfoEnabled

        public boolean isInfoEnabled()
        Tests whether info level is enabled.
        Specified by:
        isInfoEnabled in interface IgniteLogger
        Returns:
        true in case when info level is enabled, false otherwise.
      • isQuiet

        public boolean isQuiet()
        Tests whether Logger is in "Quiet mode".
        Specified by:
        isQuiet in interface IgniteLogger
        Returns:
        true "Quiet mode" is enabled, false otherwise