这听起来像将您对日志记录配置的自定义推迟到LoggingApplicationListener
运行之后才起作用。
LoggingApplicationListener
响应ApplicationEnvironmentPreparedEvent
并执行的顺序执行初始化Ordered.HIGHEST_PRECEDENCE + 11
。为了防止您的自定义配置被覆盖,您可以将您的自定义逻辑封装在SmartApplicationListener
响应相同事件但顺序较低的中,使其在LoggingApplicationListener
以下时间运行:
public class CustomLoggingConfigurationApplicationListener implements
SmartApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
// Customise the logging configuration
}
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE + 12;
}
@Override
public boolean supportsEventType(Class<? extends ApplicationEvent> eventType) {
return ApplicationEnvironmentPreparedEvent.class.isAssignableFrom(eventType);
}
@Override
public boolean supportsSourceType(Class<?> sourceType) {
return true;
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class)
.listeners(new CustomLoggingConfigurationApplicationListener())
.run(args);
}
}