org.refcodes.factory.LookupFactory<RuntimeLogger,String>
, org.refcodes.factory.TypeFactory<RuntimeLogger>
, RuntimeLoggerFactory
, org.refcodes.mixin.TypeAccessor<RuntimeLogger>
RuntimeLoggerFactorySingleton
public class RuntimeLoggerFactoryImpl extends Object implements RuntimeLoggerFactory
RuntimeLoggerFactoryImpl
by providing a
"runtimelogger.ini
" file (see
"http://www.refcodes.org/refcodes/refcodes-logger") in one of those locations
relative to your main class's location:
runtimelogger.ini
" file are:
runtimelogger.ini
"
file), then your path_to_your_config_dir is placed first in the list of
configuration directories to look at (in case the directory exists).See
SystemProperty.CONFIG_DIR
and ConfigLocator.getFolders()
. The
"runtimelogger.ini
" configuration is deadly simple:
[root] runtimelogger=org.refcodes.logger.RuntimeLoggerImpl runtimelogger/logPriority=INFO runtimelogger/logger=org.refcodes.logger.SystemLogger [com.acme] runtimelogger=org.refcodes.logger.RuntimeLoggerImpl runtimelogger/logPriority=INFO runtimelogger/name=com.acme runtimelogger/logger=org.refcodes.logger.SystemLoggerThe XML element nesting represents the Java package for which the therein configured
RuntimeLogger
is responsible; e.g. a log issued from
inside a class located in the package "com.acme" (or in one of its
sub-packages) will be handled by the "AcmeLogger". In case no logger is found
for a given package, then the root logger found in the <root> ...
</root> element is used. Useful to know that a logger for a package
namespace is only created once.
If you like logs colored nicely with ANSI Escape-Codes, then you will love the ConsoleLoggerSingleton:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
<root config-class=
"org.refcodes.logger.RuntimeLoggerImpl" logPriorityName="INFO" name="*">
<logger config-class=
"org.refcodes.logger.alt.cli.ConsoleLoggerSingleton" />
</root>
</config>
Make sure to include the "refcodces-logger-alt-console" dependency in your
build setup to include the "ConsoleLoggerSingleton" logger.org.refcodes.mixin.TypeAccessor.TypeBuilder<T extends Object,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T extends Object>, org.refcodes.mixin.TypeAccessor.TypeProperty<T extends Object>
Modifier | Constructor | Description |
---|---|---|
protected |
RuntimeLoggerFactoryImpl() |
Instantiates a new runtime logger factory impl.
|
Modifier and Type | Method | Description |
---|---|---|
RuntimeLogger |
createInstance() |
|
RuntimeLogger |
createInstance(String aIdentifier) |
|
RuntimeLogger |
createInstance(String aIdentifier,
Map<String,String> aProperties) |
The provided identifier represents a level hierarchy as
defined in the
RuntimeLogger.RUNTIME_LOGGER_CONFIG XML file. |
RuntimeLogger |
createInstance(Map<String,String> aProperties) |
|
static RuntimeLogger |
fromConfigurationFile(String aElementPath,
String aConfigFileName) |
Loads the configured
RuntimeLogger from the given configuration
file. |
protected RuntimeLoggerFactoryImpl()
public RuntimeLogger createInstance()
createInstance
in interface org.refcodes.factory.TypeFactory<RuntimeLogger>
public RuntimeLogger createInstance(Map<String,String> aProperties)
createInstance
in interface org.refcodes.factory.TypeFactory<RuntimeLogger>
public RuntimeLogger createInstance(String aIdentifier)
createInstance
in interface org.refcodes.factory.LookupFactory<RuntimeLogger,String>
public RuntimeLogger createInstance(String aIdentifier, Map<String,String> aProperties)
RuntimeLogger.RUNTIME_LOGGER_CONFIG
XML file. The
level hierarchy is actually the path to the XML element providing the
RuntimeLogger
's configuration. Each level is separated by the
succeeding level with a dot "." as defined by the
Delimiter.NAMESPACE
char value. The root logger's level hierarchy
(XML path) is defined by the
RuntimeLogger.ROOT_LOGGER_ELEMENT_PATH
; at the time of this
writing it was set to "org.refcodes.logger.runtimeLogger". The properties
are currently ignored.createInstance
in interface org.refcodes.factory.LookupFactory<RuntimeLogger,String>
public static RuntimeLogger fromConfigurationFile(String aElementPath, String aConfigFileName) throws LoggerInstantiationRuntimeException
RuntimeLogger
from the given configuration
file. Various locations as well file endings are probed as of the
RuntimeProperties
as well as of the ConfigLocator.ALL
definition.aElementPath
- The path (package) for which to create the logger.aConfigFileName
- The (base) file name of the configuration file.LoggerInstantiationRuntimeException
- Thrown in case instantiating
a Logger
(RuntimeLogger
) failed,Copyright © 2021. All rights reserved.