Class RuntimeLoggerFactoryImpl

java.lang.Object
org.refcodes.logger.RuntimeLoggerFactoryImpl
All Implemented Interfaces:
org.refcodes.factory.Factory<RuntimeLogger>, org.refcodes.factory.LookupFactory<RuntimeLogger,String>, org.refcodes.factory.TypeFactory<RuntimeLogger>, RuntimeLoggerFactory, org.refcodes.mixin.TypeAccessor<RuntimeLogger>
Direct Known Subclasses:
RuntimeLoggerFactorySingleton

public class RuntimeLoggerFactoryImpl extends Object implements RuntimeLoggerFactory
You configure your 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:
  • .
  • ./config
  • ./etc
  • ./settings
  • ./.config
  • ./.settings
  • ../config
  • ../etc
  • ../settings
  • ../.config
  • ../.settings
Given your main class's JAR file resides in the folder /opt/app/lib, then the valid locations for the "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
In case you pass a JVM argument via "-Dconfig.dir=path_to_your_config_dir" (where path_to_your_config_dir stands for the path to the directory where you placed configuration files such as the "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.SystemLogger 
The 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.
  • Constructor Details

    • RuntimeLoggerFactoryImpl

      protected RuntimeLoggerFactoryImpl()
      Instantiates a new runtime logger factory impl.
  • Method Details