Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Logback - Print out method name that called the log method

In my example, I have the following code:

package com.example.somepackage;

public class Example {
    public static void main(String[] args) {
        org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Example.class);
        logger.info("Example message.");
    }
}

I want it to output to the console like this minimal example:

com.example.somepackage.Example.main Example message.

The only thing I need is either:

  • a pattern to put into the logback.xml file or
  • instructions on further code I need to add to my example code scenario

If extra code is used instead of a XML configuration pattern, please also provide information on how to pair these two, so one can still use patterns for time, log level, etc. in addition to the method name being printed out.

like image 234
randers Avatar asked Aug 10 '15 07:08

randers


People also ask

What is logger name in Logback xml?

Logback Architecture A Logger is a context for log messages. This is the class that applications interact with to create log messages. Appenders place log messages in their final destinations. A Logger can have more than one Appender.

Does Logback use log4j?

Logback uses the same concepts as Log4j. So it's no surprise that even if they are using different file formats, their configurations are very similar. The following code snippet shows the same configuration as I used with Log4j.

Does Logback use SLF4J?

Logback natively implements the SLF4J API.


1 Answers

I think you're looking for the %M pattern. See the Logback docs for all patterns that you could use. Note, however, that these docs also say:

Generating the method name is not particularly fast. Thus, its use should be avoided unless execution speed is not an issue.

like image 112
mthmulders Avatar answered Sep 20 '22 07:09

mthmulders