记录转换规则参数化

时间:2016-10-17 11:18:58

标签: java spring-boot logback slf4j

在Logback中是否有任何参数化转换规则的方法? 我尝试过添加子节点,其他属性,但我还没有找到方法。

<conversionRule conversionWord="boundedMsg" converterClass="com.package.util.logging.converters.LongMessageConverter">

我想添加LongMessageConverter类将使用的参数。

我的应用程序是在Spring Boot上设置的,我使用的是Sl4J。

1 个答案:

答案 0 :(得分:3)

这是一个围绕Logback的问题,而不是与Spring Boot有关的任何问题。您需要做的是与MDCConverter类似的事情。在您的模式中,您可以指定类似的内容:

<conversionRule conversionWord="boundedMsg" converterClass="com.package.util.logging.converters.LongMessageConverter">

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  <encoder>
    <pattern>%boundedMsg{25} [%thread] - %msg%n</pattern>
  </encoder>
</appender>

25start()方法调用期间转换器可用的选项。它被确定为第一种选择。您最终可能会将许多选项传递给转换器。这样,转换器对于您在Logback配置中指定的任意数量的模式都是通用的。

start方法如下:

private int msgLength;

@Override
public void start() {
    msgLength = Integer.parseInt(getFirstOption());
    super.start();
}