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.
我唯一需要的是:
- 要放入
logback.xml
文件或 的模式
- 关于我需要添加到我的示例代码场景中的更多代码的说明
如果使用额外的代码而不是 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>
在我的示例中,我有以下代码:
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.
我唯一需要的是:
- 要放入
logback.xml
文件或 的模式
- 关于我需要添加到我的示例代码场景中的更多代码的说明
如果使用额外的代码而不是 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>