[slf4j-dev] [JIRA] (SLF4J-154) Copy & paste of LoggerFactory.getLogger
QOS.CH (JIRA)
noreply-jira at qos.ch
Sun Mar 19 17:40:00 CET 2017
[ https://jira.qos.ch/browse/SLF4J-154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18558#comment-18558 ]
Sebastian Davids commented on SLF4J-154:
----------------------------------------
Java 7+ one can use the following idiom:
{code:java}
(static) final Logger logger = LoggerFactory.getLogger(java.lang.invoke.MethodHandles.lookup().lookupClass());
{code}
Maybe the documentation could be updated:
https://www.slf4j.org/faq.html#declaration_pattern
> 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
(v7.3.1#73012)
More information about the slf4j-dev
mailing list