Dropwizard默认的logback模式

时间:2014-11-04 16:25:26

标签: java logback dropwizard

如果没有配置logFormat,有没有人知道Dropwizard 0.7.1日志记录的默认格式模式?

我需要......:

%d{HH:mm:ss.SSS} %-5level [%X{id}] [%X{format}] [%thread]: %class{0}::%method:%line - %msg%n

1 个答案:

答案 0 :(得分:2)

Logback使用Layout interface doLayout()方法的实现将日志记录事件转换为可输出的字符串,如the documentation中所述。 Dropwizard provides an extension PatternLayout class abstract PatternLayoutBase class(又是the logback documentation的扩展名):

  

PatternLayout接受记录事件并返回String。然而,   可以通过调整PatternLayout的转换来自定义此String   图案

public class DropwizardLayout extends PatternLayout {
    public DropwizardLayout(LoggerContext context, TimeZone timeZone) {
        super();
        setOutputPatternAsHeader(false);
        getDefaultConverterMap().put("ex", PrefixedThrowableProxyConverter.class.getName());
        getDefaultConverterMap().put("xEx", PrefixedExtendedThrowableProxyConverter.class.getName());
        getDefaultConverterMap().put("rEx", PrefixedRootCauseFirstThrowableProxyConverter.class.getName());
        setPattern("%-5p [%d{ISO8601," + timeZone.getID() + "}] %c: %m%n%rEx");
        setContext(context);
    }
}

这是做什么的:

  1. 确保禁用outputPatternAsHeader,这是一个标志,可以在任何日志的顶部输出所需的字符串模式。确认所使用模式的一种方法是在您的appender上启用此标记,如conversion words中所述。
  2. 覆盖与打印异常相关的许多an implementation of ThrowableProxyConverter,以使用带有感叹号的堆栈跟踪前缀的{{3}}。
  3. 使用传入的时区将模式设置为"%-5p [%d{ISO8601," + timeZone.getID() + "}] %c: %m%n%rEx"。如果您未明确添加时区信息,则logback将使用JVM的时区,否则为GMT。如果这是可以接受的,您可以使用%d,因为ISO8601格式是默认格式。
  4. 设置上下文。