如何使用HikariDataSource在logBack中配置DBappender的池大小?

时间:2017-04-20 12:23:52

标签: datasource logback hikaricp

这是我使用HikariDatasource的logback配置:

<appender name="AUDIT-DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
        <dataSource class="com.zaxxer.hikari.HikariDataSource">
            <driverClassName>com.mysql.jdbc.Driver</driverClassName>
            <jdbcUrl>jdbc:mysql://myurl:3306/audit?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</jdbcUrl>
            <username>mysqlciuser</username>
            <password>mysqlcipwd</password>
        </dataSource>
    </connectionSource>
</appender>

在logback https://logback.qos.ch/manual/appenders.html的文档中,我找不到限制数据源创建的默认池大小(10)的方法。 我尝试使用标记:<maxPoolSize>5</maxPoolSize>但它不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您应该使用以下配置行:

<maximumPoolSize>50</maximumPoolSize>

问题是,在HikariConfig中,setter和字段名称是矛盾的:

 @Override
   public void setMaximumPoolSize(int maxPoolSize)
   {
      if (maxPoolSize < 1) {
         throw new IllegalArgumentException("maxPoolSize cannot be less than 1");
      }
      this.maxPoolSize = maxPoolSize;
   }