Class Log4jTaglibLoggerContext

java.lang.Object
org.apache.logging.log4j.taglib.Log4jTaglibLoggerContext
All Implemented Interfaces:
LoggerContext

@NullMarked final class Log4jTaglibLoggerContext extends Object implements LoggerContext
This bridge between the tag library and the Log4j API ensures that instances of Log4jTaglibLogger are appropriately held in memory and not constantly recreated.
Since:
2.0
  • Field Details

    • LOCK

      private static final ReadWriteLock LOCK
    • READ_LOCK

      private static final Lock READ_LOCK
    • WRITE_LOCK

      private static final Lock WRITE_LOCK
    • LOGGER_CONTEXT_BY_SERVLET_CONTEXT

      private static final Map<javax.servlet.ServletContext, Log4jTaglibLoggerContext> LOGGER_CONTEXT_BY_SERVLET_CONTEXT
    • DEFAULT_MESSAGE_FACTORY

      private static final MessageFactory DEFAULT_MESSAGE_FACTORY
    • loggerRegistry

      private final LoggerRegistry<Log4jTaglibLogger> loggerRegistry
    • servletContext

      private final javax.servlet.ServletContext servletContext
  • Constructor Details

    • Log4jTaglibLoggerContext

      private Log4jTaglibLoggerContext(javax.servlet.ServletContext servletContext)
  • Method Details

    • getExternalContext

      public Object getExternalContext()
      Description copied from interface: LoggerContext
      Gets the anchor for some other context, such as a ClassLoader or ServletContext.
      Specified by:
      getExternalContext in interface LoggerContext
      Returns:
      The external context.
    • getLogger

      public Log4jTaglibLogger getLogger(String name)
      Description copied from interface: LoggerContext
      Gets an ExtendedLogger.
      Specified by:
      getLogger in interface LoggerContext
      Parameters:
      name - The name of the Logger to return.
      Returns:
      The logger with the specified name.
    • getLogger

      public Log4jTaglibLogger getLogger(String name, @Nullable MessageFactory messageFactory)
      Description copied from interface: LoggerContext
      Gets an ExtendedLogger.
      Specified by:
      getLogger in interface LoggerContext
      Parameters:
      name - The name of the Logger to return.
      messageFactory - The message factory is used only when creating a logger, subsequent use does not change the logger but will log a warning if mismatched.
      Returns:
      The logger with the specified name.
    • createLogger

      private Log4jTaglibLogger createLogger(String name, MessageFactory messageFactory)
    • hasLogger

      public boolean hasLogger(String name)
      Description copied from interface: LoggerContext
      Tests if a Logger with the specified name exists.
      Specified by:
      hasLogger in interface LoggerContext
      Parameters:
      name - The Logger name to search for.
      Returns:
      true if the Logger exists, false otherwise.
    • hasLogger

      public boolean hasLogger(String name, @Nullable MessageFactory messageFactory)
      Description copied from interface: LoggerContext
      Tests if a Logger with the specified name and MessageFactory exists.
      Specified by:
      hasLogger in interface LoggerContext
      Parameters:
      name - The Logger name to search for.
      messageFactory - The message factory to search for.
      Returns:
      true if the Logger exists, false otherwise.
    • hasLogger

      public boolean hasLogger(String name, Class<? extends MessageFactory> messageFactoryClass)
      Description copied from interface: LoggerContext
      Tests if a Logger with the specified name and MessageFactory type exists.
      Specified by:
      hasLogger in interface LoggerContext
      Parameters:
      name - The Logger name to search for.
      messageFactoryClass - The message factory class to search for.
      Returns:
      true if the Logger exists, false otherwise.
    • getInstance

      static Log4jTaglibLoggerContext getInstance(javax.servlet.ServletContext servletContext)