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>>
registry
A 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 void
close()
void
contextShutdown(LoggerContext loggerContext)
protected abstract LoggerContext
getContext()
Gets theLoggerContext
that should be used to look up or create loggers.protected LoggerContext
getContext(Class<?> callerClass)
Gets theLoggerContext
associated with the given caller class.L
getLogger(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 L
newLogger(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:LoggerAdapter
Gets a named logger. Implementations should defer to the abstract methods inAbstractLoggerAdapter
.- Specified by:
getLogger
in interfaceLoggerAdapter<L>
- Parameters:
name
- the name of the logger to get- Returns:
- the named logger
-
contextShutdown
public void contextShutdown(LoggerContext loggerContext)
- Specified by:
contextShutdown
in 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 theLoggerContext
that should be used to look up or create loggers. This is similar in spirit to theContextSelector
class 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 theLoggerContext
associated with the given caller class.- Parameters:
callerClass
- the caller class- Returns:
- the LoggerContext for the calling class
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
-