[slf4j-dev] [JIRA] (SLF4J-154) Copy & paste of LoggerFactory.getLogger

QOS.CH (JIRA) noreply-jira at qos.ch
Mon Apr 23 08:36:00 CEST 2018

    [ https://jira.qos.ch/browse/SLF4J-154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=19174#comment-19174 ] 

Joachim Durchholz commented on SLF4J-154:

The selling point of having a copy&paste-capable logger setup line without having to think, so you can concentrate on your class logic.

The MethodHandles method sort-of achieves that (it does for a colleague who is good at remembering things, I am not so it does not work very well for me).
Spotting incorrectly named loggers after the fact sort-of achieves that, too, depending on wether that error message comes as a distraction from more serious problems, or as the only, quickly-fixed problem. It's still more overhead than necessary (to be weighed against code bloat in SLF4J, but in this case I think it's worth it since SLF4J is about making logging a no-brainer).

> Copy & paste of LoggerFactory.getLogger
> ---------------------------------------
>                 Key: SLF4J-154
>                 URL: https://jira.qos.ch/browse/SLF4J-154
>             Project: SLF4J
>          Issue Type: Bug
>          Components: Core API
>         Environment: Operating System: All
> Platform: All
>            Reporter: Thomas Mueller
>            Assignee: SLF4J developers list
>         Attachments: clipboard.png
> This is a feature request.
> Currently, when I create a new logger in a class, I copy & paste the following line from another class:
>   private static Logger log = LoggerFactory.getLogger(AcmeImpl.class);
> Sometimes I forget to change the class name. SLF4J could help me here. I suggest to add a new method, so the class name is not required, so that I can copy & paste the line without having to remember that I have to change the class name. Also, it's a bit shorter:
>   private static Logger log = LoggerFactory.getCallerClassLogger();
> This is copy & paste friendly. The implementation is tricky, but trivial once you understand it:
>   getCallerClassLogger() {
>     return getLogger(new Error().getStackTrace()[1].getClassName());
>   }
> There is a project that tries to solve the copy & paste problem: http://code.google.com/p/morbok/

This message was sent by Atlassian JIRA

More information about the slf4j-dev mailing list