Log4j 2 YAML Configuration with Console Appender

Tags: Log4j Apache Log4j 2 log4j-api log4j-core log4j LogManager log4j Logger log4j yaml jackson-dataformat-yaml

Java Code Examples for using

  • org.apache.logging.log4j.LogManager
  • org.apache.logging.log4j.Logger

The Java code example below to show you how to configure Log4j 2 with YAML configuration file to log messages to sytem console using Console appender.

Adding Log2j 2 Dependencies to your project

In order to read YAML configuration file Log4j 2 using Jackson and jackson-dataformat-yaml libraries so that you need to add these dependencies to your project.

Add dependencies below to your build.gradle if you are using Gradle build.

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.8'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.8'
    compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.8'
}

Add dependencies below to your pom.xml if you are using Maven build.

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.2</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
    <version>2.9.8</version>
</dependency>

Example YAML configuration to log to Console

Adding /src/main/resources/log4j2.yaml to your project

Configuration:
  status: error
  name: ConsoleExample
  packages: "simplesolution.dev"
  appenders:
    Console:
      name: STDOUT
      PatternLayout:
        Pattern: "%d - %t - %p - %c - %m%n"
  Loggers:
    Root:
      level: trace
      AppenderRef:
        ref: STDOUT

Example code to log messages

package simplesolution.dev;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4j2YAMLConfigurationConsoleExample {

    private static final Logger logger = LogManager.getLogger(Log4j2YAMLConfigurationConsoleExample.class.getName());

    public static void main(String... args) {
        logger.trace("Trace message");
        logger.info("Info message");
        logger.debug("Debug message");
        logger.warn("Warn message");
        logger.error("Error message");
        logger.fatal("Fatal message");
    }
}

Application output

2019-05-08 00:43:12,420 - main - TRACE - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Trace message
2019-05-08 00:43:12,427 - main - INFO - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Info message
2019-05-08 00:43:12,427 - main - DEBUG - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Debug message
2019-05-08 00:43:12,427 - main - WARN - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Warn message
2019-05-08 00:43:12,428 - main - ERROR - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Error message
2019-05-08 00:43:12,428 - main - FATAL - simplesolution.dev.Log4j2YAMLConfigurationConsoleExample - Fatal message

Download Source Code

The source code in this article can be found at: https://github.com/simplesolutiondev/Log4j2YAMLConfigurationConsole

Happy Coding 😊