http://www.iteye.com/topic/172125
BufferSize没什么作用,JDBCAppender
只是把用户输出的log现在一个ArrayList中保存,当其数量达到了BufferSize,才启动写日志。而且JDBCAppender还是每次都生成Connection,每一个Log还是单独写入,不是批量写入。
Log4J的数据库写入方式就是一个鸡肋,如果需要提高性能,首先,自己需要实现一个连接池。而且其还不支持addBatch,赫赫,如下是log4j源代码(JDBCAppender.java)
########################
public void flushBuffer() {
//Do the actual logging
removes.ensureCapacity(buffer.size());
for (Iterator i = buffer.iterator(); i.hasNext();) {
try {
LoggingEvent logEvent = (LoggingEvent)i.next();
String sql = getLogStatement(logEvent);
execute(sql);
removes.add(logEvent);
}
catch (SQLException e) {
errorHandler.error("Failed to excute sql", e,
ErrorCode.FLUSH_FAILURE);
}
}
// remove from the buffer any events that were reported
buffer.removeAll(removes);
// clear the buffer of reported events
removes.clear();
}
###########################
protected void execute(String sql) throws SQLException {
Connection con = null;
Statement stmt = null;
try {
con = getConnection();
stmt = con.createStatement();
stmt.executeUpdate(sql);
} catch (SQLException e) {
if (stmt != null)
stmt.close();
throw e;
}
stmt.close();
closeConnection(con);
//System.out.println("Execute: " + sql);
}
分享到:
相关推荐
详细介绍了log4j的使用方法,介绍了java中日志记录如何写入数据库,对于初学者来说很不错的一个文档
本JavaWeb工程主要演示如何借助log4j把日志写入数据库中,工程中的代码均有详细的注释说明,相信您通过该例子一定能掌握如何借助log4j把日志写入数据库中,欢迎下载。
C# 利用log4net 把日志写入到数据库
log4j日志写入数据库实例
演示了java记录通过log4j2记录日志到mysql数据库中
使用log4net进行日志记录在项目中使用的示例。 本示例中包含常用的写日志到文件(按日期自动生成文件名称)及写日志到SQLite数据库两种方式。 示例资源中包含源码及演示作品两部分,使用前请先修改SQLite数据库的...
log4j写入数据库配置
log4j学习笔记及写入数据库配置,一份log4j学习资料。还包含log4j写入数据库的配置方法。
异常对于程序来说是非常重要的,方便我们程序员发现异常、并能够快速的找到异常;本文介绍使用Log4net实现获取程序的错误信息,并将错误信息写入Sql Server数据库。
通过log4net在mvc 框架下,将日志写入sql server数据库实例. 例子可直接执行。
对Log4j2异步写日志的效率测试源码
log4j 日志信息存储到数据库的相关配置与使用
log4j是一个优秀的开源日志记录项目,我们不仅可以对输出的日志的格式自定义,还可以自己定义日志输出的目的地,比如:屏幕,文本文件,数据库,甚至能通过socket输出。本节主要讲述如何将日志信息输入到数据库...
使用log4j添加日志记录到数据库和文件中,log4j提供了非常强大的日志记录功能,为了弄这代码我整整研究了两天,访问时直接在地址栏输入日志添加的action就可以,没有写页面。
通过Log4j输出日志到数据库表中,有表的创建sql,是完整的一套代码,可以直接运行。
使用log4j2实现日志数据脱敏
一、运行部署 1、将LogerWriteMySqlDemo项目导入Eclipse 2、修改db.properties文件中数据库...三、配置文件db.properties、log4j.properties两个配置文件可以通过servlet配置来使用,也可以直接先用DbUtil.java中先测试
我用maven + spring mvc +JDBCTEMPLATE + 由Slf4j实现Common-Logging+Log4j的日志控制 (数据库用MySQL)简单编写的注册功能模块 附:项目搭建中的完整步骤和说明
示范如何在android工程中使用log4j记录日志