如果没有配置logFormat,有人知道Dropwizard 0.7.1日志记录的默认格式模式吗?
我需要类似于以下内容:
%d{HH:mm:ss.SSS} %-5level [%X{id}] [%X{format}] [%thread]: %class{0}::%method:%line - %msg%n
如果没有配置logFormat,有人知道Dropwizard 0.7.1日志记录的默认格式模式吗?
我需要类似于以下内容:
%d{HH:mm:ss.SSS} %-5level [%X{id}] [%X{format}] [%thread]: %class{0}::%method:%line - %msg%n
doLayout()
方法将日志事件转换为可以输出的字符串,如文档所述。Dropwizard提供了一个扩展到PatternLayout
类(它又是抽象PatternLayoutBase
类的扩展):
PatternLayout
接收一个日志事件并返回一个String
。然而,这个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上启用此标志,如logback文档中所述。"%-5p [%d{ISO8601," + timeZone.getID() + "}] %c: %m%n%rEx"
,使用传递的时区。如果不显式添加时区信息,logback将使用JVM的时区,否则使用GMT。如果这是可以接受的,您可以只使用%d
,因为ISO8601
格式是默认值。
io.dropwizard.logging.DropwizardLayout
,它是%-5p [%d{ISO8601," + timeZone.getID() + "}] %c: %m%n%rEx
。由于我不确定 timeZone 是否正确以及 setPattern 之前的其他行是否相关,因此将其作为注释留下。 - Natan