Logback配置中的自定义appender,Spring扩展无法正常工作

时间:2017-07-02 22:30:27

标签: spring logback appender

我的最终目标是在Spring启动应用中使用我的自定义appender。如果我直接在logback.xml中引用了appender,appender需要自动连接另一个无效的变量。我找到了有关spring https://github.com/qos-ch/logback-extensions/wiki/Spring的logback扩展的阅读材料。我试图遵循指示,但自定义appender没有实例化。日志显示DelegatingLogbackAppender确实已创建,但我不知道为什么它没有与我的appender链接。

这是我的logback.xml:

<configuration debug="true">
    <appender name="rabbitmqAppender" class="ch.qos.logback.ext.spring.DelegatingLogbackAppender"/> 
    <root level="INFO">
        <appender-ref ref="rabbitmqAppender"/>
    </root>
</configuration>

这是我的Spring配置代码(更少的导入行):

@Configuration
public class LogbackConfig 
{
    @Bean 
    public static ApplicationContextHolder applicationContextHolder() {
        return new ApplicationContextHolder ();
    }

    @Bean 
    public static LoggerContext loggerContext() {
        return (LoggerContext) LoggerFactory.getILoggerFactory();
    }

    @Bean (initMethod = "start", destroyMethod = "stop")
    public static PatternLayoutEncoder encoder (LoggerContext ctx) {
        PatternLayoutEncoder encoder = new PatternLayoutEncoder();
        encoder.setContext(ctx);
        encoder.setPattern("%date %-5level [%thread] %logger{36} %m%n");
        return encoder;
    }

    @Bean (initMethod = "start", destroyMethod = "stop")
    public static RabbitMQAppender rabbitmqAppender(LoggerContext ctx, PatternLayoutEncoder encoder) {
        RabbitMQAppender appender = new RabbitMQAppender();
        appender.setContext(ctx);
        return appender;
    }
}

我还尝试使用doc示例中显示的ConsoleAppender。它没有在控制台中显示任何日志行。

0 个答案:

没有答案