I'm having the same problem as the user here: log4j type GenericObjectPool does not take parameters but I've been unable to find an answer to this problem. Log4j2 works when appending to a rollingfile but the method listed here : https://logging.apache.org/log4j/2.x/manual/appenders.html gives me the error "GenericObjectPool does not take Parameters"
package database;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnection;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDataSource;
import org.apache.commons.pool.impl.GenericObjectPool;
public class ConnectionFactory {
private static interface Singleton {
final ConnectionFactory INSTANCE = new ConnectionFactory();
}
private final DataSource dataSource;
private ConnectionFactory() {
Properties properties = new Properties();
properties.setProperty("user", "root");
properties.setProperty("password", "tiger");
GenericObjectPool<PoolableConnection> pool = new GenericObjectPool<PoolableConnection>();
DriverManagerConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
"jdbc:mysql://127.0.0.1/logging", properties);
new PoolableConnectionFactory(connectionFactory, pool, null,
"SELECT 1",3, false, false,
Connection.TRANSACTION_READ_COMMITTED
);
this.dataSource = new PoolingDataSource(pool);
}
public static Connection getDatabaseConnection() throws SQLException {
return Singleton.INSTANCE.dataSource.getConnection();
}
}