Skip to content

LOG4J2_ILLEGAL_PASSED_CLASS

Summary

  • Rule ID: LOG4J2_ILLEGAL_PASSED_CLASS
  • Name: Log4j2 illegal passed class
  • Problem: LogManager.getLogger(...) should receive the declaring class to keep logger category correct.

What This Rule Reports

This rule reports LogManager.getLogger(Class) calls that pass a class literal different from the current class.

Java Example (reported)

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

class ClassA {
    private static final Logger LOG = LogManager.getLogger(String.class);
}

What This Rule Does Not Report

  • LogManager.getLogger(ClassA.class) from ClassA
  • No-argument logger factory overloads

Java Example (not reported)

class ClassA {
    private static final Logger LOG = LogManager.getLogger(ClassA.class);
}

Pass the declaring class literal (ClassA.class) to getLogger.

Message Shape

Findings explain that LogManager.getLogger should be called with the caller class and show expected/actual values.