Compiling Program with Apache Log4j

Q

How to compile my program with Log4j 2.4.1? My program uses Log4j 2 API only and I want to know which JAR file is needed to compile it.

✍: FYIcenter.com

A

If your program is using Log4j 2 API, you need to compile it with only the Log4j 2 API JAR, like log4j-api-2.14.1.jar.

If you are using older versions of JDK, you may need to use older releases of Log4j 2 API JAR. See the JDK compatibility table below:

               Release   JDK   Date 
               -------   ---   ----------
Apache Log4j   2.14.1      8   2021-03-12
Apache Log4j   2.12.1      7   2020-07-03
Apache Log4j   2.3         6   2020-07-03

Here is a compilation session with the HelloLog4j2.java program provided in the last tutorial. You see compilation errors, because Log4j 2 API JAR is not provided.

fyicenter> java -version
java version "15" 2020-09-15

fyicenter> javac HelloLog4j2.java
HelloLog4j2.java:4: error: cannot find symbol
  private static final Logger logger = LogManager.getLogger("fyiLogger");
                       ^
  symbol:   class Logger
  location: class HelloLog4j2
HelloLog4j2.java:2: error: package org.apache.logging.log4j does not exist
import org.apache.logging.log4j.*;
^
HelloLog4j2.java:4: error: cannot find symbol
  private static final Logger logger = LogManager.getLogger("fyiLogger");
                                       ^
  symbol:   variable LogManager
  location: class HelloLog4j2
3 errors

Compile it again with Log4j 2 API JAR provided. You see bytecode file generated.

fyicenter> javac -cp log4j-api-2.14.1.jar HelloLog4j2.java

fyicenter> dir
 1584 Jul  4 14:19 HelloLog4j2.class

The above session shows that:

  • The first command reports that we are using JDK 15
  • The second command reports that compilation fails without Log4j 2 JAR file.
  • The third command reports that compilation is seccussful if log4j-api-2.14.1.jar is included in the classpath.

 

Running Program with Apache Log4j

Hello Program with Apache Log4j

Using Apache Log4j in Java Programs

⇑⇑ FAQ for Apache Log4j

2015-11-18, 3275🔥, 0💬