Logback - 打印出调用 log 方法的方法名称
Posted
技术标签:
【中文标题】Logback - 打印出调用 log 方法的方法名称【英文标题】:Logback - Print out method name that called the log method 【发布时间】:2015-11-02 01:25:27 【问题描述】:在我的示例中,我有以下代码:
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 配置模式,还请提供有关如何将这两者配对的信息,以便除了打印出方法名称外,还可以使用时间、日志级别等模式。
【问题讨论】:
【参考方案1】:我认为您正在寻找%M
模式。
见Logback docs
对于您可以使用的所有模式。
但是请注意,这些文档还说:
生成方法名并不是特别快。因此,除非执行速度不是问题,否则应避免使用它。
【讨论】:
【参考方案2】:这是一个记录方法名称和行号的示例 appender:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%dHH:mm:ss.SSS %green([%thread]) %highlight(%-5level) (%logger50.%M\(%line\)) - (%msg%n)
</pattern>
</encoder>
</appender>
【讨论】:
以上是关于Logback - 打印出调用 log 方法的方法名称的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅如何传递android的log日志打印方法给到底层算法c代码去调用?
我的Android进阶之旅如何传递android的log日志打印方法给到底层算法c代码去调用?