Back to Intellij Community

LoggerInitializedWithForeignClass

java/java-impl/resources/inspectionDescriptions/LoggerInitializedWithForeignClass.html

2025.3-rc-21.3 KB
Original Source

Reports Logger instances that are initialized with a class literal from a different class than the Logger is contained in. This can easily happen when copy-pasting some code from another class and may result in logging events under an unexpected category and cause filters to be applied incorrectly.

A quick-fix is provided to replace the foreign class literal with one from the surrounding class.

Example:

public class Paramount {
    protected static final Logger LOG = Logger.getLogger(Critical.class);

    // ... other fields and methods
  }

After the quick-fix is applied:

public class Paramount {
    protected static final Logger LOG = Logger.getLogger(Paramount.class);

    // ... other fields and methods
  }

Configure the inspection:

  • Use the table to specify the logger factory classes and logger factory methods recognized by this inspection.
  • Use the Ignore loggers initialized with a superclass option to ignore loggers that are initialized with a superclass of the class containing the logger.
  • Use the Ignore loggers in non-public classes to only warn on loggers in public classes.
  • Use the Ignore loggers not initialized in a final field to only report loggers initialized in a final field, other cases will be ignored.