Inspectopedia Help

Logger initialized with foreign class

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 }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

LoggerInitializedWithForeignClass
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Logging

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.

Inspection options

Here you can find the description of settings available for the Logger initialized with foreign class inspection, and the reference of their default values.

Ignore loggers initialized with a superclass

Not selected

Ignore loggers in non-public classes

Not selected

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024