Class LoggingApplicationListener

java.lang.Object
org.springframework.boot.context.logging.LoggingApplicationListener
All Implemented Interfaces:
EventListener, org.springframework.context.ApplicationListener<org.springframework.context.ApplicationEvent>, org.springframework.context.event.GenericApplicationListener, org.springframework.context.event.SmartApplicationListener, org.springframework.core.Ordered

public class LoggingApplicationListener extends Object implements org.springframework.context.event.GenericApplicationListener
An ApplicationListener that configures the LoggingSystem. If the environment contains a logging.config property it will be used to bootstrap the logging system, otherwise a default configuration is used. Regardless, logging levels will be customized if the environment contains logging.level.* entries and logging groups can be defined with logging.group.

Debug and trace logging for Spring, Tomcat, Jetty and Hibernate will be enabled when the environment contains debug or trace properties that aren't set to "false" (i.e. if you start your application using java -jar myapp.jar [--debug | --trace]). If you prefer to ignore these properties you can set parseArgs to false.

By default, log output is only written to the console. If a log file is required, the logging.file.path and logging.file.name properties can be used.

Some system properties may be set as side effects, and these can be useful if the logging configuration supports placeholders (i.e. log4j or logback):

  • LOG_FILE is set to the value of path of the log file that should be written (if any).
  • PID is set to the value of the current process ID if it can be determined.
Since:
2.0.0
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The name of the Spring property that contains a reference to the logging configuration to load.
    static final int
    The default order for the LoggingApplicationListener.
    static final String
    The name of the LogFile bean.
    static final String
    The name of the LoggerGroups bean.
    static final String
    The name of the LoggingSystem bean.
    static final String
    The name of the Spring property that controls the registration of a shutdown hook to shut down the logging system when the JVM exits.

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    protected void
    initialize(org.springframework.core.env.ConfigurableEnvironment environment, ClassLoader classLoader)
    Initialize the logging system according to preferences expressed through the Environment and the classpath.
    protected void
    Initialize loggers based on the springBootLogging setting.
    void
    onApplicationEvent(org.springframework.context.ApplicationEvent event)
     
    protected void
    setLogLevels(LoggingSystem system, org.springframework.core.env.ConfigurableEnvironment environment)
    Set logging levels based on relevant Environment properties.
    void
    setOrder(int order)
     
    void
    setParseArgs(boolean parseArgs)
    Sets if initialization arguments should be parsed for debug and trace properties (usually defined from --debug or --trace command line args).
    void
    setSpringBootLogging(LogLevel springBootLogging)
    Sets a custom logging level to be used for Spring Boot and related libraries.
    boolean
    supportsEventType(org.springframework.core.ResolvableType resolvableType)
     
    boolean
    supportsSourceType(Class<?> sourceType)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.context.ApplicationListener

    supportsAsyncExecution

    Methods inherited from interface org.springframework.context.event.GenericApplicationListener

    supportsEventType

    Methods inherited from interface org.springframework.context.event.SmartApplicationListener

    getListenerId
  • Field Details

  • Constructor Details

    • LoggingApplicationListener

      public LoggingApplicationListener()
  • Method Details

    • supportsEventType

      public boolean supportsEventType(org.springframework.core.ResolvableType resolvableType)
      Specified by:
      supportsEventType in interface org.springframework.context.event.GenericApplicationListener
    • supportsSourceType

      public boolean supportsSourceType(Class<?> sourceType)
      Specified by:
      supportsSourceType in interface org.springframework.context.event.SmartApplicationListener
    • onApplicationEvent

      public void onApplicationEvent(org.springframework.context.ApplicationEvent event)
      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<org.springframework.context.ApplicationEvent>
    • initialize

      protected void initialize(org.springframework.core.env.ConfigurableEnvironment environment, ClassLoader classLoader)
      Initialize the logging system according to preferences expressed through the Environment and the classpath.
      Parameters:
      environment - the environment
      classLoader - the classloader
    • initializeSpringBootLogging

      protected void initializeSpringBootLogging(LoggingSystem system, LogLevel springBootLogging)
      Initialize loggers based on the springBootLogging setting. By default this implementation will pick an appropriate set of loggers to configure based on the level.
      Parameters:
      system - the logging system
      springBootLogging - the spring boot logging level requested
      Since:
      2.2.0
    • setLogLevels

      protected void setLogLevels(LoggingSystem system, org.springframework.core.env.ConfigurableEnvironment environment)
      Set logging levels based on relevant Environment properties.
      Parameters:
      system - the logging system
      environment - the environment
      Since:
      2.2.0
    • setOrder

      public void setOrder(int order)
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
      Specified by:
      getOrder in interface org.springframework.context.event.SmartApplicationListener
    • setSpringBootLogging

      public void setSpringBootLogging(LogLevel springBootLogging)
      Sets a custom logging level to be used for Spring Boot and related libraries.
      Parameters:
      springBootLogging - the logging level
    • setParseArgs

      public void setParseArgs(boolean parseArgs)
      Sets if initialization arguments should be parsed for debug and trace properties (usually defined from --debug or --trace command line args). Defaults to true.
      Parameters:
      parseArgs - if arguments should be parsed