You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vadim Pakhnushev (Jira)" <ji...@apache.org> on 2026/02/20 09:34:00 UTC

[jira] [Updated] (IGNITE-27935) Add custom checkstyle rule to detect logger class mismatches

     [ https://issues.apache.org/jira/browse/IGNITE-27935?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vadim Pakhnushev updated IGNITE-27935:
--------------------------------------
    Description: 
Logger fields are sometimes copy-pasted between classes, leading to bugs where the class argument doesn't match the enclosing class:
{code:java}
class Bar {
    // BUG: should be Bar.class
    private static final Logger LOG = LoggerFactory.getLogger(Foo.class);
}
{code}
Add a new modules/checkstyle-custom module containing LoggerClassMismatchCheck - a custom checkstyle rule that detects when a static final logger field is initialized with a class literal that doesn't match the enclosing class.

The check covers all four logger factory patterns used in the codebase: LoggerFactory.getLogger(), LogManager.getLogger(), Loggers.forClass(), and CliLoggers.forClass().

Both field name pattern and factory method names are configurable via XML properties.

  was:
Logger fields are sometimes copy-pasted between classes, leading to bugs where the class argument doesn't match the enclosing class:

class Bar {
    // BUG: should be Bar.class
    private static final Logger LOG = LoggerFactory.getLogger(Foo.class);
}

Add a new modules/checkstyle-custom module containing LoggerClassMismatchCheck - a custom checkstyle rule that detects when a static final logger field is initialized with a class literal that doesn't match the enclosing class.

The check covers all four logger factory patterns used in the codebase: LoggerFactory.getLogger(), LogManager.getLogger(), Loggers.forClass(), and CliLoggers.forClass().

Both field name pattern and factory method names are configurable via XML properties.


> Add custom checkstyle rule to detect logger class mismatches
> ------------------------------------------------------------
>
>                 Key: IGNITE-27935
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27935
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vadim Pakhnushev
>            Assignee: Vadim Pakhnushev
>            Priority: Major
>              Labels: ignite-3
>
> Logger fields are sometimes copy-pasted between classes, leading to bugs where the class argument doesn't match the enclosing class:
> {code:java}
> class Bar {
>     // BUG: should be Bar.class
>     private static final Logger LOG = LoggerFactory.getLogger(Foo.class);
> }
> {code}
> Add a new modules/checkstyle-custom module containing LoggerClassMismatchCheck - a custom checkstyle rule that detects when a static final logger field is initialized with a class literal that doesn't match the enclosing class.
> The check covers all four logger factory patterns used in the codebase: LoggerFactory.getLogger(), LogManager.getLogger(), Loggers.forClass(), and CliLoggers.forClass().
> Both field name pattern and factory method names are configurable via XML properties.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)