浏览 154 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-04-24 关键字: log4j
我试图重写JDBCAppender,享用连接池实现日志输出。现在问题是每次控制台或者文件可以输出内容,并且连接池也成功初始化了。(插入测试数据成功)但工程跑起来后,却根本没有拿取过connection。
PS:用过那个增强的JDBCAppender可以在日志中可以插入测试数据,但是配置比较奇怪,不会用。
log4j.appender.JDBC=org.commons.c3p0.demo2.JDBCPoolAppender
log4j.appender.JDBC.BufferSize=4096
log4j.appender.JDBC.layout=org.apache.log4j.PatternLayout
log4j.appender.JDBC.sql=INSERT INTO rz_log (log_date, log_level, location, message) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%-5p', '%C,%L', '%m')
log4j.logger.org.apache.jsp=info, JDBC, stdout
public class JDBCPool {
private static ComboPooledDataSource cpds;
public JDBCPool() {
try {
cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/anaplatform");
cpds.setUser("root");
cpds.setPassword("12345678");
System.out.println(StringUtils.center("ComboPooledDataSource", 80, "="));
System.out.println("ComboPooledDataSource:"+cpds);
} catch (PropertyVetoException ex) {
ex.printStackTrace();
}
}
public Connection getConnection() throws SQLException {
System.out.println(StringUtils.center("JDBCPool getConnection", 80, "="));
return cpds.getConnection();
}
}
public class JDBCPoolAppender extends JDBCAppender {
private static JDBCPool jdbcPool = new JDBCPool();
public JDBCPoolAppender() {
super();
System.out.println(StringUtils.center("create JDBCPoolAppender", 80, "="));
System.out.println("bufferSize:"+this.bufferSize);
}
/**
* Override 此函数来利用连接池返回一个Connetion对象
*/
@Override
protected Connection getConnection() throws SQLException {
try {
connection = jdbcPool.getConnection();
} catch (Exception e) {
errorHandler.error("Error opening connection", e, ErrorCode.GENERIC_FAILURE);
}
System.out.println(StringUtils.center("getConnection:" +connection, 80, "="));
return connection;
}
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


