Logback - 打印出调用日志方法的方法名

Logback - Print out method name that called the log method

在我的示例中,我有以下代码:

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.");
    }
}

我希望它像这个最小示例一样输出到控制台:

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

我唯一需要的是:

如果使用额外的代码而不是 XML 配置模式,请同时提供有关如何将这两者配对的信息,以便除了正在打印的方法名称。

我认为您正在寻找 %M 模式。 查看 Logback docs 对于您可以使用的所有模式。 但是请注意,这些文档还说:

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

这是一个记录方法名称和行号的示例附加程序:

 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{HH:mm:ss.SSS} %green([%thread]) %highlight(%-5level) (%logger{50}.%M\(%line\)) - (%msg%n)
            </pattern>
        </encoder>
  </appender>