Class DefaultRuntimeLoggerFactory
java.lang.Object
org.refcodes.logger.DefaultRuntimeLoggerFactory
- All Implemented Interfaces:
Factory<RuntimeLogger>, LookupFactory<RuntimeLogger, String>, TypeFactory<RuntimeLogger>, RuntimeLoggerFactory, TypeAccessor<RuntimeLogger>
- Direct Known Subclasses:
RuntimeLoggerFactorySingleton
You configure your
DefaultRuntimeLoggerFactory 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:
- .
- ./config
- ./etc
- ./settings
- ./.config
- ./.settings
- ../config
- ../etc
- ../settings
- ../.config
- ../.settings
runtimelogger.ini" file are:
- /opt/app/lib
- /opt/app/lib/config
- /opt/app/lib/etc
- /opt/app/lib/settings
- /opt/app/lib/.config
- /opt/app/lib/.settings
- /opt/app/config
- /opt/app/etc
- /opt/app/settings
- /opt/app/.config
- /opt/app/.settings
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.DefaultRuntimeLogger runtimelogger/logPriority=INFO runtimelogger/logger=org.refcodes.logger.SystemLogger [com.acme] runtimelogger=org.refcodes.logger.DefaultRuntimeLogger 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.DefaultRuntimeLogger" 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.-
Nested Class Summary
Nested classes/interfaces inherited from interface Factory
Factory.ConfigurableFactory<T,OPTS> Nested classes/interfaces inherited from interface LookupFactory
LookupFactory.ConfigurableLookupFactory<T,TID, OPTS> Nested classes/interfaces inherited from interface TypeAccessor
TypeAccessor.TypeBuilder<T,B>, TypeAccessor.TypeMutator<T>, TypeAccessor.TypeProperty<T> Nested classes/interfaces inherited from interface TypeFactory
TypeFactory.ConfigurableTypeFactory<T,OPTS> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInstantiates a new runtime logger factory impl. -
Method Summary
Modifier and TypeMethodDescriptioncreate()static RuntimeLoggerfromConfigurationFile(String aNamespace, String aConfigFileName) Loads the configuredRuntimeLoggerfrom the given configuration file.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TypeFactory
getType
-
Constructor Details
-
DefaultRuntimeLoggerFactory
protected DefaultRuntimeLoggerFactory()Instantiates a new runtime logger factory impl.
-
-
Method Details
-
create
- Specified by:
createin interfaceFactory<RuntimeLogger>
-
create
The provided identifier represents a level hierarchy as defined in the
RuntimeLogger.RUNTIME_LOGGER_CONFIGXML file. The level hierarchy is actually the path to the XML element providing theRuntimeLogger's configuration. Each level is separated by the succeeding level with a dot "." as defined by theDelimiter.NAMESPACEchar value. The root logger's level hierarchy (XML path) is defined by theRuntimeLogger.ROOT_LOGGER_ELEMENT_PATH; at the time of this writing it was set to "org.refcodes.logger.runtimeLogger". The properties are currently ignored.- Specified by:
createin interfaceLookupFactory<RuntimeLogger, String>
-
fromConfigurationFile
Loads the configuredRuntimeLoggerfrom the given configuration file. Various locations as well file endings are probed as of theCliApplicationPropertiesas well as of theConfigLocator.ALLdefinition.- Parameters:
aNamespace- The path (package) for which to create the logger.aConfigFileName- The (base) file name of the configuration file.- Returns:
- The according logger.
- Throws:
LoggerInstantiationRuntimeException- Thrown in case instantiating aLogger(RuntimeLogger) failed,
-