Package org.apache.logging.log4j.spi
Class AbstractLoggerAdapter<L>
- java.lang.Object
-
- org.apache.logging.log4j.spi.AbstractLoggerAdapter<L>
-
- Type Parameters:
L- the Logger class to adapt
- All Implemented Interfaces:
Closeable,AutoCloseable,LoggerAdapter<L>,LoggerContextShutdownAware
public abstract class AbstractLoggerAdapter<L> extends Object implements LoggerAdapter<L>, LoggerContextShutdownAware
Provides an abstract base class to use for implementing LoggerAdapter.- Since:
- 2.1
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<LoggerContext,ConcurrentMap<String,L>>registryA map to store loggers for their given LoggerContexts.
-
Constructor Summary
Constructors Constructor Description AbstractLoggerAdapter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()voidcontextShutdown(LoggerContext loggerContext)protected abstract LoggerContextgetContext()Gets theLoggerContextthat should be used to look up or create loggers.protected LoggerContextgetContext(Class<?> callerClass)Gets theLoggerContextassociated with the given caller class.LgetLogger(String name)Gets a named logger.Set<LoggerContext>getLoggerContexts()For unit testing.ConcurrentMap<String,L>getLoggersInContext(LoggerContext context)Gets or creates the ConcurrentMap of named loggers for a given LoggerContext.protected abstract LnewLogger(String name, LoggerContext context)Creates a new named logger for a givenLoggerContext.
-
-
-
Field Detail
-
registry
protected final Map<LoggerContext,ConcurrentMap<String,L>> registry
A map to store loggers for their given LoggerContexts.
-
-
Method Detail
-
getLogger
public L getLogger(String name)
Description copied from interface:LoggerAdapterGets a named logger. Implementations should defer to the abstract methods inAbstractLoggerAdapter.- Specified by:
getLoggerin interfaceLoggerAdapter<L>- Parameters:
name- the name of the logger to get- Returns:
- the named logger
-
contextShutdown
public void contextShutdown(LoggerContext loggerContext)
- Specified by:
contextShutdownin interfaceLoggerContextShutdownAware
-
getLoggersInContext
public ConcurrentMap<String,L> getLoggersInContext(LoggerContext context)
Gets or creates the ConcurrentMap of named loggers for a given LoggerContext.- Parameters:
context- the LoggerContext to get loggers for- Returns:
- the map of loggers for the given LoggerContext
-
getLoggerContexts
public Set<LoggerContext> getLoggerContexts()
For unit testing. Consider to be private.
-
newLogger
protected abstract L newLogger(String name, LoggerContext context)
Creates a new named logger for a givenLoggerContext.- Parameters:
name- the name of the logger to createcontext- the LoggerContext this logger will be associated with- Returns:
- the new named logger
-
getContext
protected abstract LoggerContext getContext()
Gets theLoggerContextthat should be used to look up or create loggers. This is similar in spirit to theContextSelectorclass inlog4j-core. However, implementations can rely on their own framework's separation of contexts instead (or simply use a singleton).- Returns:
- the LoggerContext to be used for lookup and creation purposes
- See Also:
LogManager.getContext(ClassLoader, boolean),LogManager.getContext(String, boolean)
-
getContext
protected LoggerContext getContext(Class<?> callerClass)
Gets theLoggerContextassociated with the given caller class.- Parameters:
callerClass- the caller class- Returns:
- the LoggerContext for the calling class
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
-