如果没有配置logFormat,有没有人知道Dropwizard 0.7.1日志记录的默认格式模式?
我需要......:
%d{HH:mm:ss.SSS} %-5level [%X{id}] [%X{format}] [%thread]: %class{0}::%method:%line - %msg%n
答案 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);
}
}
这是做什么的:
outputPatternAsHeader
,这是一个标志,可以在任何日志的顶部输出所需的字符串模式。确认所使用模式的一种方法是在您的appender上启用此标记,如conversion words中所述。"%-5p [%d{ISO8601," + timeZone.getID() + "}] %c: %m%n%rEx"
。如果您未明确添加时区信息,则logback将使用JVM的时区,否则为GMT。如果这是可以接受的,您可以使用%d
,因为ISO8601
格式是默认格式。