public final class LogFactory extends Object
DefaultLogProvider
. Provider instance is delegated for
most of this factory tasks.
Before to be used, a logging provider may require configuration. It is highly probable but still configuration step is not
mandatory. For configuration, log factory has config(Config)
that just passes configuration object to provider.
Configuration object structure is provider implementation detail. Provider is encourage to initialize itself with sensible
default configuration in case user code fails to invoke config(Config)
.
Log factory main job is to create named logger instances and for that delegates LogProvider.getLogger(String)
. There
is also a convenient factory method to create logger per class, getLog(Class)
. In fact this is most common usage
pattern: every class has its own logger instance, see sample code.
public class Sample { private static final Log log = LogFactory.getLog(Sample.class); ... }
Modifier and Type | Field and Description |
---|---|
private static LogProvider |
provider
Logger implementation provider.
|
Modifier | Constructor and Description |
---|---|
private |
LogFactory()
Prevent default constructor synthesis.
|
Modifier and Type | Method and Description |
---|---|
static void |
config(Config config)
Configure logging provider from configuration object.
|
static Log |
getLog(Class<?> targetClass)
Create logger for given class.
|
static Log |
getLog(String loggerName)
Create a named logger.
|
static LogContext |
getLogContext()
Get logger context usable to bind diagnostic data to current thread.
|
private static LogProvider |
provider()
Load log provider from Java services and return the first instance found.
|
private static LogProvider provider
public static void config(Config config)
If provider configuration fails, most probably because of bad configuration, reset provider to default.
config
- configuration object.private static LogProvider provider()
Returns DefaultLogProvider
if no log provider service found.
public static Log getLog(String loggerName)
LogProvider.getLogger(String)
.loggerName
- logger name.public static Log getLog(Class<?> targetClass)
LogProvider.getLogger(String)
with class name as
argument.targetClass
- class to create logger for.public static LogContext getLogContext()
Copyright © 2018. All rights reserved.