当前位置: 首页 > 知识库问答 >
问题:

用于spring boot应用程序的Logback自定义数据库追加器

江佐
2023-03-14

下面是代码示例-

public class MyDBAppender extends AppenderBase<ILoggingEvent> {

    private JdbcTemplate jdbcTemplate;

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

共有1个答案

苏振国
2023-03-14

您可以通过在类级别添加@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);
 类似资料:
  • 我正在按照本指南将MySql添加到一个已经存在的SpringBoot项目中,该项目的依赖关系管理是在Graddle上。就在我添加教程中使用的这三个类时,如下所示 main/java/net/code/model/users.java 我的类使用@SpringBoot main/java/net/code/app.java 但每当我运行该应用程序时,我总是收到下面的消息 我搜索了一些相关问题,比如S

  • 我有一个可以创建和编辑组的应用程序。每个团体都有一个独特的头衔。当有人试图创建新组时,我会检查是否有具有该标题的组,如果有,则验证失败。问题是,当有人试图编辑组而不更改标题时,根据我的自定义验证,有一个组具有该标题(有人正在编辑的标题),而我的验证失败,因此用户无法保存该组。所以我想问一下,是否有人能解决这个问题。非常感谢您的回答! 我的班级 我的验证器接口 我的验证器

  • 所以我现在正在做一个需要数字拾取器的应用程序。我已经创建了数字拾取器使用一个按钮textview+按钮布局。t选择器可以正常工作,但当您删除数字并尝试按下任何按钮时,此时应用程序会崩溃。

  • 我正在处理mysql主从复制。我正在使用Spring data jpa(Spring boot)。 我需要的是所有写入操作都转到主服务器,只读操作平均分配给多个只读从服务器。 为此,我需要: 使用特殊的JDBC驱动程序:com.mysql.jdbc.ReplicationDriver 设置复制:在URL中: 需要关闭自动提交。(*)连接需要设置为只读。 为了确保JDBC连接设置为只读,我创建了一个

  • 是否可以在不安装SQL Server的情况下在客户端计算机中安装应用程序? 在部署应用程序时可以包含数据库吗? 如果在部署时已在系统必备组件中选中SQL Server,是否可以在客户端的计算机上安装?

  • Weblogic是否有任何免费可用的应用程序(war文件),其中应用程序使用某种数据库? 如果这不是正确的地方,请将我重定向到正确的地方问这个问题。