Class LogManager
Logger
. The method getLogger()
is provided as the most convenient way to obtain a named Logger based
on the calling class name. This class also provides method for obtaining named Loggers that use
String.format(String, Object...)
style messages instead of the default type of parameterized messages. These
are obtained through the getFormatterLogger(Class)
family of methods. Other service provider methods are
given through the getContext()
and getFactory()
family of methods; these methods are not normally
useful for typical usage of Log4j.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Detects if a Logger with the specified name exists.static LoggerContext
Returns the current LoggerContext.static LoggerContext
getContext
(boolean currentContext) Returns a LoggerContext.static LoggerContext
getContext
(ClassLoader loader, boolean currentContext) Returns a LoggerContext.static LoggerContext
getContext
(ClassLoader loader, boolean currentContext, Object externalContext) Returns a LoggerContext.static LoggerContext
getContext
(ClassLoader loader, boolean currentContext, Object externalContext, URI configLocation) Returns a LoggerContext.static LoggerContext
getContext
(ClassLoader loader, boolean currentContext, Object externalContext, URI configLocation, String name) Returns a LoggerContext.static LoggerContext
getContext
(ClassLoader loader, boolean currentContext, URI configLocation) Returns a LoggerContext.protected static LoggerContext
getContext
(String fqcn, boolean currentContext) Returns a LoggerContextprotected static LoggerContext
getContext
(String fqcn, ClassLoader loader, boolean currentContext) Returns a LoggerContextprotected static LoggerContext
getContext
(String fqcn, ClassLoader loader, boolean currentContext, URI configLocation, String name) Returns a LoggerContextstatic LoggerContextFactory
Returns the current LoggerContextFactory.static Logger
Returns a formatter Logger using the fully qualified name of the calling Class as the Logger name.static Logger
getFormatterLogger
(Class<?> clazz) Returns a formatter Logger using the fully qualified name of the Class as the Logger name.static Logger
getFormatterLogger
(Object value) Returns a formatter Logger using the fully qualified name of the value's Class as the Logger name.static Logger
getFormatterLogger
(String name) Returns a formatter Logger with the specified name.static Logger
Returns a Logger with the name of the calling class.static Logger
Returns a Logger using the fully qualified name of the Class as the Logger name.static Logger
getLogger
(Class<?> clazz, MessageFactory messageFactory) Returns a Logger using the fully qualified name of the Class as the Logger name.static Logger
Returns a Logger using the fully qualified class name of the value as the Logger name.static Logger
getLogger
(Object value, MessageFactory messageFactory) Returns a Logger using the fully qualified class name of the value as the Logger name.static Logger
Returns a Logger with the specified name.protected static Logger
Returns a Logger with the specified name.static Logger
getLogger
(String name, MessageFactory messageFactory) Returns a Logger with the specified name.static Logger
getLogger
(MessageFactory messageFactory) Returns a Logger with the name of the calling class.static Logger
Returns the root logger.static void
setFactory
(LoggerContextFactory factory) Sets the current LoggerContextFactory to use.static void
shutdown()
Shutdown using the LoggerContext appropriate for the caller of this method.static void
shutdown
(boolean currentContext) Shutdown the logging system if the logging system supports it.static void
shutdown
(boolean currentContext, boolean allContexts) Shutdown the logging system if the logging system supports it.static void
shutdown
(LoggerContext context) Shutdown the logging system if the logging system supports it.
-
Field Details
-
FACTORY_PROPERTY_NAME
Deprecated.Replaced since 2.24.0 with "log4j.provider".Log4j's property to set to the fully qualified class name of a custom implementation ofLoggerContextFactory
.- Since:
- 2.0.1
- See Also:
-
ROOT_LOGGER_NAME
The name of the root Logger.- See Also:
-
-
Constructor Details
-
LogManager
protected LogManager()Prevents instantiation
-
-
Method Details
-
exists
Detects if a Logger with the specified name exists. This is a convenience method for porting from version 1.- Parameters:
name
- The Logger name to search for.- Returns:
- true if the Logger exists, false otherwise.
- See Also:
-
getContext
Returns the current LoggerContext.WARNING - The LoggerContext returned by this method may not be the LoggerContext used to create a Logger for the calling class.
- Returns:
- The current LoggerContext.
-
getContext
Returns a LoggerContext.- Parameters:
currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.- Returns:
- a LoggerContext.
-
getContext
Returns a LoggerContext.- Parameters:
loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.- Returns:
- a LoggerContext.
-
getContext
public static LoggerContext getContext(ClassLoader loader, boolean currentContext, Object externalContext) Returns a LoggerContext.- Parameters:
loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.externalContext
- An external context (such as a ServletContext) to be associated with the LoggerContext.- Returns:
- a LoggerContext.
-
getContext
public static LoggerContext getContext(ClassLoader loader, boolean currentContext, URI configLocation) Returns a LoggerContext.- Parameters:
loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.configLocation
- The URI for the configuration to use.- Returns:
- a LoggerContext.
-
getContext
public static LoggerContext getContext(ClassLoader loader, boolean currentContext, Object externalContext, URI configLocation) Returns a LoggerContext.- Parameters:
loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.externalContext
- An external context (such as a ServletContext) to be associated with the LoggerContext.configLocation
- The URI for the configuration to use.- Returns:
- a LoggerContext.
-
getContext
public static LoggerContext getContext(ClassLoader loader, boolean currentContext, Object externalContext, URI configLocation, String name) Returns a LoggerContext.- Parameters:
loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.externalContext
- An external context (such as a ServletContext) to be associated with the LoggerContext.configLocation
- The URI for the configuration to use.name
- The LoggerContext name.- Returns:
- a LoggerContext.
-
getContext
Returns a LoggerContext- Parameters:
fqcn
- The fully qualified class name of the Class that this method is a member of.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.- Returns:
- a LoggerContext.
-
getContext
Returns a LoggerContext- Parameters:
fqcn
- The fully qualified class name of the Class that this method is a member of.loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.- Returns:
- a LoggerContext.
-
getContext
protected static LoggerContext getContext(String fqcn, ClassLoader loader, boolean currentContext, URI configLocation, String name) Returns a LoggerContext- Parameters:
fqcn
- The fully qualified class name of the Class that this method is a member of.loader
- The ClassLoader for the context. If null the context will attempt to determine the appropriate ClassLoader.currentContext
- if false the LoggerContext appropriate for the caller of this method is returned. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be returned and if the caller is a class in the container's classpath then a different LoggerContext may be returned. If true then only a single LoggerContext will be returned.configLocation
- The URI for the configuration to use.name
- The LoggerContext name.- Returns:
- a LoggerContext.
- Since:
- 2.9.1
-
shutdown
public static void shutdown()Shutdown using the LoggerContext appropriate for the caller of this method. This is equivalent to callingLogManager.shutdown(false)
.This call is synchronous and will block until shut down is complete. This may include flushing pending log events over network connections.
- Since:
- 2.6
-
shutdown
public static void shutdown(boolean currentContext) Shutdown the logging system if the logging system supports it. This is equivalent to callingLogManager.shutdown(LogManager.getContext(currentContext))
.This call is synchronous and will block until shut down is complete. This may include flushing pending log events over network connections.
- Parameters:
currentContext
- if true a default LoggerContext (may not be the LoggerContext used to create a Logger for the calling class) will be used. If false the LoggerContext appropriate for the caller of this method is used. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be used and if the caller is a class in the container's classpath then a different LoggerContext may be used.- Since:
- 2.6
-
shutdown
public static void shutdown(boolean currentContext, boolean allContexts) Shutdown the logging system if the logging system supports it. This is equivalent to callingLogManager.shutdown(LogManager.getContext(currentContext))
.This call is synchronous and will block until shut down is complete. This may include flushing pending log events over network connections.
- Parameters:
currentContext
- if true a default LoggerContext (may not be the LoggerContext used to create a Logger for the calling class) will be used. If false the LoggerContext appropriate for the caller of this method is used. For example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be used and if the caller is a class in the container's classpath then a different LoggerContext may be used.allContexts
- if true all LoggerContexts that can be located will be shutdown.- Since:
- 2.13.0
-
shutdown
Shutdown the logging system if the logging system supports it.This call is synchronous and will block until shut down is complete. This may include flushing pending log events over network connections.
- Parameters:
context
- the LoggerContext.- Since:
- 2.6
-
getFactory
Returns the current LoggerContextFactory.- Returns:
- The LoggerContextFactory.
-
setFactory
Sets the current LoggerContextFactory to use. Normally, the appropriate LoggerContextFactory is created at startup, but in certain environments, a LoggerContextFactory implementation may not be available at this point. Thus, an alternative LoggerContextFactory can be set at runtime.Note that any Logger or LoggerContext objects already created will still be valid, but they will no longer be accessible through LogManager. Thus, it is a bad idea to use this method without a good reason! Generally, this method should be used only during startup before any code starts caching Logger objects.
- Parameters:
factory
- the LoggerContextFactory to use.
-
getFormatterLogger
Returns a formatter Logger using the fully qualified name of the calling Class as the Logger name.This logger lets you use a
Formatter
string in the message to format parameters.- Returns:
- The Logger for the calling class.
- Throws:
UnsupportedOperationException
- if the calling class cannot be determined.- Since:
- 2.4
-
getFormatterLogger
Returns a formatter Logger using the fully qualified name of the Class as the Logger name.This logger let you use a
Formatter
string in the message to format parameters.Short-hand for
getLogger(clazz, StringFormatterMessageFactory.INSTANCE)
- Parameters:
clazz
- The Class whose name should be used as the Logger name.- Returns:
- The Logger, created with a
StringFormatterMessageFactory
- Throws:
UnsupportedOperationException
- ifclazz
isnull
and the calling class cannot be determined.- See Also:
-
Logger.fatal(Marker, String, Object...)
Logger.fatal(String, Object...)
Logger.error(Marker, String, Object...)
Logger.error(String, Object...)
Logger.warn(Marker, String, Object...)
Logger.warn(String, Object...)
Logger.info(Marker, String, Object...)
Logger.info(String, Object...)
Logger.debug(Marker, String, Object...)
Logger.debug(String, Object...)
Logger.trace(Marker, String, Object...)
Logger.trace(String, Object...)
StringFormatterMessageFactory
-
getFormatterLogger
Returns a formatter Logger using the fully qualified name of the value's Class as the Logger name.This logger let you use a
Formatter
string in the message to format parameters.Short-hand for
getLogger(value, StringFormatterMessageFactory.INSTANCE)
- Parameters:
value
- The value whose class name should be used as the Logger name.- Returns:
- The Logger, created with a
StringFormatterMessageFactory
- Throws:
UnsupportedOperationException
- ifvalue
isnull
and the calling class cannot be determined.- See Also:
-
Logger.fatal(Marker, String, Object...)
Logger.fatal(String, Object...)
Logger.error(Marker, String, Object...)
Logger.error(String, Object...)
Logger.warn(Marker, String, Object...)
Logger.warn(String, Object...)
Logger.info(Marker, String, Object...)
Logger.info(String, Object...)
Logger.debug(Marker, String, Object...)
Logger.debug(String, Object...)
Logger.trace(Marker, String, Object...)
Logger.trace(String, Object...)
StringFormatterMessageFactory
-
getFormatterLogger
Returns a formatter Logger with the specified name.This logger let you use a
Formatter
string in the message to format parameters.Short-hand for
getLogger(name, StringFormatterMessageFactory.INSTANCE)
- Parameters:
name
- The logger name. If null it will default to the name of the calling class.- Returns:
- The Logger, created with a
StringFormatterMessageFactory
- Throws:
UnsupportedOperationException
- ifname
isnull
and the calling class cannot be determined.- See Also:
-
Logger.fatal(Marker, String, Object...)
Logger.fatal(String, Object...)
Logger.error(Marker, String, Object...)
Logger.error(String, Object...)
Logger.warn(Marker, String, Object...)
Logger.warn(String, Object...)
Logger.info(Marker, String, Object...)
Logger.info(String, Object...)
Logger.debug(Marker, String, Object...)
Logger.debug(String, Object...)
Logger.trace(Marker, String, Object...)
Logger.trace(String, Object...)
StringFormatterMessageFactory
-
getLogger
Returns a Logger with the name of the calling class.- Returns:
- The Logger for the calling class.
- Throws:
UnsupportedOperationException
- if the calling class cannot be determined.
-
getLogger
Returns a Logger using the fully qualified name of the Class as the Logger name.- Parameters:
clazz
- The Class whose name should be used as the Logger name. If null it will default to the calling class.- Returns:
- The Logger.
- Throws:
UnsupportedOperationException
- ifclazz
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger using the fully qualified name of the Class as the Logger name.- Parameters:
clazz
- The Class whose name should be used as the Logger name. If null it will default to the calling class.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.
- Throws:
UnsupportedOperationException
- ifclazz
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger with the name of the calling class.- Parameters:
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 for the calling class.
- Throws:
UnsupportedOperationException
- if the calling class cannot be determined.
-
getLogger
Returns a Logger using the fully qualified class name of the value as the Logger name.- Parameters:
value
- The value whose class name should be used as the Logger name. If null the name of the calling class will be used as the logger name.- Returns:
- The Logger.
- Throws:
UnsupportedOperationException
- ifvalue
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger using the fully qualified class name of the value as the Logger name.- Parameters:
value
- The value whose class name should be used as the Logger name. If null the name of the calling class will be used as the logger name.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.
- Throws:
UnsupportedOperationException
- ifvalue
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger with the specified name.- Parameters:
name
- The logger name. If null the name of the calling class will be used.- Returns:
- The Logger.
- Throws:
UnsupportedOperationException
- ifname
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger with the specified name.- Parameters:
name
- The logger name. If null the name of the calling class will be used.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.
- Throws:
UnsupportedOperationException
- ifname
isnull
and the calling class cannot be determined.
-
getLogger
Returns a Logger with the specified name.- Parameters:
fqcn
- The fully qualified class name of the class that this method is a member of.name
- The logger name.- Returns:
- The Logger.
-
getRootLogger
Returns the root logger.- Returns:
- the root logger, named
ROOT_LOGGER_NAME
.
-