方法1
参考文章:logback高级特性使用(二)
上面的文章使用的版本有点老,在0.9.19版本之后,就不推荐在<appender>里他用<layout>了,所以对于文章中第二个方法,使用下面的标签:
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="your.package.YourCustomLayout">
<pattern>%msg%n</pattern>
</layout>
</encoder>
注意:encoder class 一定要指定成:LayoutWrappingEncoder。
方法2
也可以使用下面的方法,自定义一个Encoder:
public class CustomPatternLayoutEncoder extends PatternLayoutEncoder {
@Override
public void start() {
CustomPatternLayout customPatternLayout = new CustomPatternLayout();
customPatternLayout.setContext(context);
customPatternLayout.setPattern(getPattern());
customPatternLayout.setOutputPatternAsHeader(outputPatternAsHeader);
customPatternLayout.start();
this.layout = customPatternLayout;
super.start();
}
}
在配置文件中,设置成:
<encoder class="your.package.CustomPatternLayoutEncoder">
<pattern>%msg%n</pattern>
</encoder>
其它
关于上面方法的优点和缺点,因为还没有具体看logback的源代码,所以无法评价。等看完源码后,再总结一下。
本文介绍了两种在 Logback 中实现自定义布局的方法:通过使用 LayoutWrappingEncoder 和自定义 Encoder。这两种方法均可实现对日志格式的灵活定制。

1646

被折叠的 条评论
为什么被折叠?



