`
masterkey
  • 浏览: 337742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: 用log4j把日志异步写入数据库中

阅读更多
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);
  }
1
0
分享到:
评论

相关推荐

    log4j使用与java中log4j记录日志如何写入数据库

    本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...

    如何借助log4j把日志写入数据库中

    然后,在Java代码中,我们可以创建并使用Logger对象,Log4j会自动将日志信息写入数据库。例如: ```java import org.apache.log4j.Logger; public class LogDemo { private static final Logger logger = Logger....

    C# 利用log4net 把日志写入到数据库

    在本篇内容中,我们将深入探讨如何利用开源日志框架log4net将应用程序的日志信息记录到数据库中。 **一、log4net简介** log4net是一款广泛使用的、高度可配置的日志框架,它为.NET开发者提供了一套灵活的日志记录...

    log4j2.xml记录日志到到数据库

    在我们的示例中,我们关注的是如何配置Log4j2以将日志写入MySQL数据库。首先,我们需要在`log4j2.xml`配置文件中定义一个使用JDBC Appender的配置: ```xml <ConnectionFactory class="org.apache.logging....

    log4j日志写入数据库实例

    本文将深入探讨如何使用Log4j将日志信息写入数据库,以实现更高级别的日志管理和分析。 首先,理解Log4j的基本概念至关重要。Log4j是一个开源的日志记录工具,它允许开发者以灵活的方式控制日志信息的输出。通过...

    Log4j写入数据库详解

    在Log4j中,通过`JDBCAppender`组件可以轻松实现将日志信息写入数据库的功能。`JDBCAppender`利用JDBC技术将日志消息异步写入数据库表中。 ##### 1. 实现步骤: **步骤一:添加依赖** 确保项目中有log4j和commons...

    log4j输出日志到数据库表中

    **标题解析:** "log4j输出日志到数据库表中" 指的是使用Log4j这个流行的Java日志框架,将日志记录存储在数据库的特定表中,而不是默认的文本文件或控制台。这通常是出于日志管理、分析和长期存储的需求。 **描述...

    Log4j 日志信息存储到数据库中

    ### Log4j 日志信息存储到数据库中的配置与使用 #### 概述 在软件开发过程中,日志记录是至关重要的环节之一。它不仅能够帮助开发者追踪程序运行时的状态,还可以在系统出现故障时提供诊断信息。Apache Log4j 是一...

    使用log4j 记录日志到数据库

    这篇博客“使用log4j记录日志到数据库”将介绍如何配置和使用Log4j,以便将日志信息存储到数据库中,而非传统的文本文件。数据库存储的日志便于进行结构化查询,有助于进行长期的数据分析和管理。 首先,理解Log4j...

    log4j写入数据库配置

    总结来说,Log4j写入数据库的配置涉及到创建适应的数据库表结构、配置`log4j.properties`文件以指定数据库连接信息和日志格式,并通过`JDBCAppender`将日志数据持久化到数据库中。这样的配置有助于收集和分析大量...

    Log4j2异步写日志效率测试源码

    Log4j2是一款广泛使用的Java日志框架,它提供了丰富的日志记录功能和高度的可配置性。在大型系统中,日志记录是至关重要的,因为它可以帮助开发者追踪系统行为、定位错误以及进行性能分析。而Log4j2的一个显著特性是...

    log4net保存日志到MySql数据库

    MySQL数据库日志存储 MySQL是一种高性能、可扩展的数据库,适用于各种规模的应用。使用MySQL存储日志,可以方便地进行日志查询、分析和备份。通过log4net,我们可以将应用程序的日志信息记录到MySQL的特定表中,...

    log4net写入sql server数据库实例

    标题"log4net写入sql server数据库实例"指出,这是一个关于如何使用log4net库在基于MVC(Model-View-Controller)框架的应用程序中记录日志,并将这些日志信息存储到SQL Server数据库的示例教程。 描述中提到,这个...

    log4j添加日志到数据库和文件中

    1. **配置文件**:在Log4j中,通常通过配置文件(通常是log4j.properties或log4j.xml)来设置日志的行为。对于文件日志,我们需要配置一个FileAppender,指定日志文件的路径和文件名。例如: ``` log4j.appender....

    log4j学习笔记及写入数据库配置

    1. **Logger**: 在Log4j中,你可以创建多个logger,每个logger都有一个名字,可以根据需要调整日志级别(如DEBUG、INFO、WARN、ERROR、FATAL)。例如,`Logger.getLogger("com.example.myapp")` 创建了一个名为...

    .Net 使用Log4Net 获取系统日志并写入数据库

    在上述配置中,我们设置了AdoNetAppender,它将日志信息存储到SQL Server数据库的ErrorLog表中。如果需要,可以自定义表结构,以便包含更多相关信息,如机器名、用户名等。此外,Log4Net还支持其他类型的Appender,...

    日志配置到文件,数据库

    - `log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout`:定义输出到数据库的日志格式。 **5. 按天滚动的日志文件配置** - `log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender`:指定...

    log4net写入数据库

    本文将深入探讨如何利用log4net将日志信息写入数据库,以及在B/S(浏览器/服务器)和C/S(客户端/服务器)架构下的具体实现方式。 首先,log4net的基本概念是不可忽视的。它是Apache Software Foundation开源的 ...

    Log4Net日志插件在.net中的使用示例(文件型日志、SQLite数据库型日志)

    使用log4net进行日志记录在项目中使用的示例。 本示例中包含常用的写日志到文件(按日期自动生成文件名称)及写日志到SQLite数据库两种方式。 示例资源中包含源码及演示作品两部分,使用前请先修改SQLite数据库的...

Global site tag (gtag.js) - Google Analytics