【问题标题】:Logback - Print out method name that called the log methodLogback - 打印出调用 log 方法的方法名称
【发布时间】: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 配置模式,还请提供有关如何将这两者配对的信息,以便除了打印出方法名称外,还可以使用时间、日志级别等模式。

【问题讨论】:

    标签: java logging slf4j logback


    【解决方案1】:

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

    生成方法名并不是特别快。因此,除非执行速度不是问题,否则应避免使用它。

    【讨论】:

      【解决方案2】:

      这是一个记录方法名称和行号的示例 appender:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-21
        • 1970-01-01
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多