Spring Boot でプログラムでログバックを構成しようとしています。プロジェクトで XML ファイルを使用しないという要件があります。logback-extensions を使用してログバック アペンダーなどを作成しています。
@Configuration
public class LoggingConfig {
@Bean
// NOTE: THIS DOES NOT DO WHAT I EXPECT IT TO
public LogbackConfigListener logbackConfigListener() {
return new LogbackConfigListener();
}
@Bean
public static ApplicationContextHolder applicationContextHolder() {
return new ApplicationContextHolder();
}
@Bean
public static LoggerContext loggerContext() {
return (LoggerContext) LoggerFactory.getILoggerFactory();
}
@Bean(initMethod = "start", destroyMethod = "stop")
public static LayoutWrappingEncoder encoder(LoggerContext ctx) {
LayoutWrappingEncoder encoder = new LayoutWrappingEncoder();
encoder.setContext(ctx);
return encoder;
}
@Bean(initMethod = "start", destroyMethod = "stop")
public static ConsoleAppender consoleAppender(LoggerContext ctx, LayoutWrappingEncoder encoder) {
ConsoleAppender appender = new ConsoleAppender();
appender.setContext(ctx);
appender.setEncoder(encoder);
return appender;
}
}
ただし、ドキュメントから得られないステップが 1 つあります。LogbackConfigListener を web.xml に追加することになっています。Spring Boot でこれを達成するにはどうすればよいですか?