Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration status="error">
- <appenders>
- <Jdbc name="databaseAppender" tableName="application_log">
- <DriverManager url="jdbc:oracle:thin:@//localhost:1521/XE" username="system" password="system" />
- <Column name="level" pattern="%level" />
- <Column name="logger" pattern="%logger" />
- <Column name="message" pattern="%message" />
- </Jdbc>
- </appenders>
- <loggers>
- <root level="warn">
- <appender-ref ref="databaseAppender"/>
- </root>
- </loggers>
- </configuration
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration status="error">
- <appenders>
- <Jdbc name="databaseAppender" tableName="application_log">
- <ConnectionFactory class="net.example.db.ConnectionFactory" method="getDatabaseConnection" />
- <Column name="level" pattern="%level" />
- <Column name="logger" pattern="%logger" />
- <Column name="message" pattern="%message" />
- </Jdbc>
- </appenders>
- <loggers>
- <root level="warn">
- <appender-ref ref="databaseAppender"/>
- </root>
- </loggers>
- </configuration
- package net.example.db;
- 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", "logging");
- properties.setProperty("password", "abc123"); // or get properties from some configuration file
- GenericObjectPool<PoolableConnection> pool = new GenericObjectPool<PoolableConnection>();
- DriverManagerConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
- "jdbc:mysql://example.org:3306/exampleDb", 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();
- }
- }
Add Comment
Please, Sign In to add comment