Guest User

Untitled

a guest
Nov 7th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration status="error">
  3. <appenders>
  4. <Jdbc name="databaseAppender" tableName="application_log">
  5. <DriverManager url="jdbc:oracle:thin:@//localhost:1521/XE" username="system" password="system" />
  6. <Column name="level" pattern="%level" />
  7. <Column name="logger" pattern="%logger" />
  8. <Column name="message" pattern="%message" />
  9. </Jdbc>
  10. </appenders>
  11. <loggers>
  12. <root level="warn">
  13. <appender-ref ref="databaseAppender"/>
  14. </root>
  15. </loggers>
  16. </configuration
  17.  
  18. <?xml version="1.0" encoding="UTF-8"?>
  19. <configuration status="error">
  20. <appenders>
  21. <Jdbc name="databaseAppender" tableName="application_log">
  22. <ConnectionFactory class="net.example.db.ConnectionFactory" method="getDatabaseConnection" />
  23. <Column name="level" pattern="%level" />
  24. <Column name="logger" pattern="%logger" />
  25. <Column name="message" pattern="%message" />
  26. </Jdbc>
  27. </appenders>
  28. <loggers>
  29. <root level="warn">
  30. <appender-ref ref="databaseAppender"/>
  31. </root>
  32. </loggers>
  33. </configuration
  34.  
  35. package net.example.db;
  36.  
  37. import java.sql.Connection;
  38. import java.sql.SQLException;
  39. import java.util.Properties;
  40.  
  41. import javax.sql.DataSource;
  42.  
  43. import org.apache.commons.dbcp.DriverManagerConnectionFactory;
  44. import org.apache.commons.dbcp.PoolableConnection;
  45. import org.apache.commons.dbcp.PoolableConnectionFactory;
  46. import org.apache.commons.dbcp.PoolingDataSource;
  47. import org.apache.commons.pool.impl.GenericObjectPool;
  48.  
  49. public class ConnectionFactory {
  50. private static interface Singleton {
  51. final ConnectionFactory INSTANCE = new ConnectionFactory();
  52. }
  53.  
  54. private final DataSource dataSource;
  55.  
  56. private ConnectionFactory() {
  57. Properties properties = new Properties();
  58. properties.setProperty("user", "logging");
  59. properties.setProperty("password", "abc123"); // or get properties from some configuration file
  60.  
  61. GenericObjectPool<PoolableConnection> pool = new GenericObjectPool<PoolableConnection>();
  62. DriverManagerConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
  63. "jdbc:mysql://example.org:3306/exampleDb", properties
  64. );
  65. new PoolableConnectionFactory(
  66. connectionFactory, pool, null, "SELECT 1", 3, false, false, Connection.TRANSACTION_READ_COMMITTED
  67. );
  68.  
  69. this.dataSource = new PoolingDataSource(pool);
  70. }
  71.  
  72. public static Connection getDatabaseConnection() throws SQLException {
  73. return Singleton.INSTANCE.dataSource.getConnection();
  74. }
  75. }
Add Comment
Please, Sign In to add comment