我们使用Spring来获取所有JDBC连接以及持久性框架的一部分.但是为了编写我们自己的自定义数据库appender(它必须是自定义的,因为由于表名标准,我们不允许使用默认的DBAppender).如何从Custom Appender内部获取spring bean的参考/使用autowire?我宁愿呆在春天而不是使用普通的JDBC.
自定义Appender:
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
public class CustomDBAppender extends AppenderBase
最佳答案
这就是我解决问题的方法 – 我通过JNDI在appender的start方法中获得了一个DataSource,然后创建了我的JDBCTemplate.它对我很有用 – 没有任何麻烦.
原文链接:https://www.f2er.com/spring/432492.htmlpublic class MyAppender extends AppenderBaseFailed to obtain data source");
}
_jt = new JDBCTemplate(ds);
}
catch (Exception ex)
{
throw new IllegalStateException("Unable to obtain data source",ex);
}
}
@Override
protected void append(ILoggingEvent e)
{
// log to database here using my JDBCTemplate instance
}
}
我不知道你是否会遇到同样的问题,但我不得不使用多步配置(如described here),因为我收到了SLF4J的“substitue logger”错误消息(described here).