Logback 转换规则参数化
Logback conversion rule parametrizing
Logback中有没有参数化转换规则的方法?
我已经尝试添加子节点、附加属性,但我没有找到一种方法。
<conversionRule conversionWord="boundedMsg" converterClass="com.package.util.logging.converters.LongMessageConverter">
我想添加将由 LongMessageConverter 使用的参数 class。
我的应用程序是在 Spring 启动时设置的,我正在使用 Sl4J。
这更多是关于 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>
25
是转换器在 start()
方法调用期间可用的选项。它被确定为第一个选项。您最终可能会将许多选项传递给转换器。这样,转换器对于您在 Logback 配置中指定的任意数量的模式都是通用的。
启动方法如下所示:
private int msgLength;
@Override
public void start() {
msgLength = Integer.parseInt(getFirstOption());
super.start();
}
Logback中有没有参数化转换规则的方法? 我已经尝试添加子节点、附加属性,但我没有找到一种方法。
<conversionRule conversionWord="boundedMsg" converterClass="com.package.util.logging.converters.LongMessageConverter">
我想添加将由 LongMessageConverter 使用的参数 class。
我的应用程序是在 Spring 启动时设置的,我正在使用 Sl4J。
这更多是关于 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>
25
是转换器在 start()
方法调用期间可用的选项。它被确定为第一个选项。您最终可能会将许多选项传递给转换器。这样,转换器对于您在 Logback 配置中指定的任意数量的模式都是通用的。
启动方法如下所示:
private int msgLength;
@Override
public void start() {
msgLength = Integer.parseInt(getFirstOption());
super.start();
}