我使用spring boot,我想在logback的自定义过滤器中获取application.properties属性。我知道如何正常进入,但这对我来说完全不同。
我的 application.properties,
sample.name="firstName"
和 logback-spring.xml 包含,
<configuration>
<property resource="application.properties" />
<springProperty scope="context" name="firstName" source="sample.name"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${logging.console.level:-ERROR}</level>
</filter>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.xxx.xxx.logback.LogbackJsonEventLayout"/>
</encoder>
<filter class="com.xx.xx.logging.CriticalAlertLoggerFilter"/>
</appender>
<root level="error">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
创建客户过滤器,
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
@Component
public class CriticalAlertLoggerFilter extends Filter<ILoggingEvent> {
public static final String ALERT_CRITICAL_STATUS = "CRITICAL";
@Value("${firstName}") // This is not working using @Value and not sure how to get it.
private String name;
@Override
public FilterReply decide(ILoggingEvent event) {
if (event.getLevel().isGreaterOrEqual(Level.ERROR)) {
MDC.put("sp-eventSourceUUID",name);
return FilterReply.ACCEPT;
}
}
我想知道如何在我的客户过滤器中获取 sample.name 的属性值。