[英]Logback structured logging format timestamp via logback.xml
[英]Option to override logback's logging format in runtime
有两种Java方法将调试打印到单个日志文件(apender)中。
是否可以将不同的日志记录格式应用于不同的方法?
例如...
MyClass.someMethod()
像%c - %{foo} %m%n
一样打印 MyClass.anotherMethod()
输出类似于%c %t %{bar} %m%n%n
。 (这些格式不应进行硬编码,而应来自外部来源,并且是运行时更改的主题。)
也许我们可以设置一个钩子/侦听器或类似的东西...
环境:Java 7+ / logback-core:0.9.28 / logback-classic:0.9.28
与布局文档一样,我们可以在logback.xml
定义自定义布局:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.me.MyLayout" />
</encoder>
</appender>
自定义布局的实现可以基于MDC做出决策:
public class MyLayout extends LayoutBase<ILoggingEvent> {
public String doLayout(ILoggingEvent event) {
if ("foo".equals(MDC.get("method"))) {
return "a custom message for method `foo`\n";
} else {
return "a default message from my own layout\n";
}
}
}
客户代码:
MDC.put("method", "foo");
log.info("a from method foo");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.