Skip to content

RSPEC-1312 - Loggers should be "private static final" and should share a naming convention #85

@yeikel

Description

@yeikel

Regardless of the logging framework in use (logback, log4j, commons-logging, java.util.logging, …​), loggers should be:

private: never be accessible outside of its parent class. If another class needs to log something, it should instantiate its own logger.
static: not be dependent on an instance of a class (an object). When logging something, contextual information can of course be provided in the messages but the logger should be created at class level to prevent creating a logger along with each object.
final: be created once and only once per class.

public Logger logger = LoggerFactory.getLogger(Foo.class);  // Noncompliant
private static final Logger LOGGER = LoggerFactory.getLogger(Foo.class);

See : https://rules.sonarsource.com/java/RSPEC-1312

Metadata

Metadata

Assignees

No one assigned

    Labels

    recipeRecipe Requested

    Type

    No type

    Projects

    Status

    Recipes Wanted

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions