Project Alternative log4j Configuration: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 18: Line 18:
<syntaxhighlight lang='java'>
<syntaxhighlight lang='java'>


LoggingConfiguration c = new YamlLoggingConfiguration(...);
Yaml yaml = new Yaml();
Map m = (Map)yaml.load(...);
 
Map alternativeLoggingConfigurationMap = m.get(...);
 
LoggingConfiguration c = new YamlLoggingConfiguration(alternativeLoggingConfigurationMap);


AlternativeLoggingConfiguration.apply(c);
AlternativeLoggingConfiguration.apply(c);

Revision as of 00:40, 24 July 2017

Internal

Overview

A pattern that consists in applying alternative log4j configuration for applications that run in background. The application rely on a base log4j configuration file, usually shipped as part of the application's installation bundle, but it can change its logging behavior based on logging configuration present in the application's configuration file. Configuration that comes from the application's configuration file takes priority over configuration stored in log4j.xml.

For command-line utilities that run in foreground and want to route their all log4j logging information to stderr if -v or --verbose command line options are used, see:

Project log4j Debugging on --verbose

log4j Debugging on --verbose and alternative log4j configuration can be combined, where --verbose flag applies until the configuration file is parsed and the new logging configuration is installed.

API

The API to support alternative logging configuration is available in novaordis-utilities 4.7.8 or newer, and consists in a collection of static utilities AlternativeLoggingConfiguration, the LoggingConfiguration interface and other support classes.

Yaml yaml = new Yaml();
Map m = (Map)yaml.load(...);

Map alternativeLoggingConfigurationMap = m.get(...);

LoggingConfiguration c = new YamlLoggingConfiguration(alternativeLoggingConfigurationMap);

AlternativeLoggingConfiguration.apply(c);

YAML Configuration

logging:
  file: /some/file.log
  loggers:
    - org.something: INFO
    - com.something.else: TRACE