如何使用 HikariDataSource 在 logBack 中配置 DBappender 的池大小?
How to configure the pool size of a DBappender in logBack with HikariDataSource ?
这是我使用 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&characterEncoding=utf8&useSSL=false</jdbcUrl>
<username>mysqlciuser</username>
<password>mysqlcipwd</password>
</dataSource>
</connectionSource>
</appender>
在 logback https://logback.qos.ch/manual/appenders.html 的文档中,我没有找到限制数据源创建的默认池大小 (10) 的方法。
我尝试使用标签:<maxPoolSize>5</maxPoolSize>
但它不起作用。
感谢您的帮助。
您应该使用以下配置行:
<maximumPoolSize>50</maximumPoolSize>
问题是 setter 和字段名在 HikariConfig 中是矛盾的:
@Override
public void setMaximumPoolSize(int maxPoolSize)
{
if (maxPoolSize < 1) {
throw new IllegalArgumentException("maxPoolSize cannot be less than 1");
}
this.maxPoolSize = maxPoolSize;
}
这是我使用 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&characterEncoding=utf8&useSSL=false</jdbcUrl>
<username>mysqlciuser</username>
<password>mysqlcipwd</password>
</dataSource>
</connectionSource>
</appender>
在 logback https://logback.qos.ch/manual/appenders.html 的文档中,我没有找到限制数据源创建的默认池大小 (10) 的方法。
我尝试使用标签:<maxPoolSize>5</maxPoolSize>
但它不起作用。
感谢您的帮助。
您应该使用以下配置行:
<maximumPoolSize>50</maximumPoolSize>
问题是 setter 和字段名在 HikariConfig 中是矛盾的:
@Override
public void setMaximumPoolSize(int maxPoolSize)
{
if (maxPoolSize < 1) {
throw new IllegalArgumentException("maxPoolSize cannot be less than 1");
}
this.maxPoolSize = maxPoolSize;
}