javaloggingslf4jlogback

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:

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.


Solution

  • 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.