簡體   English   中英

用於Spring啟動應用程序的Logback Custom Data Base appender

[英]Logback Custom Data Base appender for spring boot application

我正在創建一個java spring啟動應用程序,我需要將(信息日志)記錄到特定的數據庫表中。 為此,我創建了一個擴展AppenderBase類的自定義appender類。 現在的問題是,在我的自定義appender類中,我想使用spring的application.properties文件中提供的數據庫屬性創建/訪問jdbctemplate對象。

如何在自定義appender中訪問spring的jdbctemplate對象?

這是代碼示例 -

public class MyDBAppender extends AppenderBase<ILoggingEvent> {

    private JdbcTemplate jdbcTemplate;

    @Override
     protected void append(ILoggingEvent eventObject) {
       jdbcTemplate.savelog(....);
   } 
}

您可以通過在類級別添加@Component注釋來創建MyDBAppender的Spring Bean。

或者,如果您不想這樣做或者如果這不起作用,您可以創建一個幫助程序類來訪問ApplicationContext:

@Component
public class ApplicationContextProvider implements ApplicationContextAware {

    private static ApplicationContext context;

    public static <T> T getBean(Class<T> beanType) {
        return context.getBean(beanType);
    }

    @Override
    public void setApplicationContext(ApplicationContext ac) throws BeansException {
        context = ac;
    }

}

要訪問JdbcTemplate,請使用它。

JdbcTemplate jdbcTemplate = ApplicationContextProvider.getBean(JdbcTemplate.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM