`
blueram
  • 浏览: 762440 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

配置log4j写入数据库

阅读更多
首先按tomcat +sqlserver 数据连接池 中的方法配置数据连接池。

\WEB-INF\lib文件夹加入包msbase.jar;mssqlserver.jar;msutil.jar;log4j-1.2.8.jar

放在WEB_INF\class文件夹下的log.properties文件的内容如下

#输出到F:/home/example.log
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=F:/home/example.log
log4j.appender.A1.MaxBackeupIndex=1
log4j.appender.A1.MaxFileSize=1MB
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p][%d]%n%m%n%n

#控制台输出
#log4j.logger.A2=, myAppender
#log4j.appender.A1=org.apache.log4j.ConsoleAppender
#log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#log4j.appender.A1.layout.ConversionPattern= [%-5p][%d]%n%m%n%n

#写入数据库
#log4j.rootLogger=DEBUG, DATABASE 
#log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender//(root日志记录器的存储器)
#log4j.appender.DATABASE.URL=jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor
#log4j.appender.DATABASE.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
#log4j.appender.DATABASE.user=sd //用户名
#log4j.appender.DATABASE.password=
#log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('%d %c %p %m%n')//写入pubs数据库中的表LOG4J的Message字段中,内容%d(日期)%c: 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行 
#log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
#log4j.appender.DATABASE.layout.ConversionPattern=%d %c %p %m%n

类文件中的使用方法

import org.apache.log4j.Logger;

import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Vector;

/**
* 封装DataSource
*
* @version 1.0, 2005-9-16 11:18:44
*/

public class DataSourcePackBean {
     /**
      * log4j
      */
     private Logger logger = Logger.getLogger(DataSourcePackBean.class);

//DataSourcePackBean.class日志记录器的名与类名相同;

     /**
      * 引用名
      */
     private String ref;

     /**
      * DataSource对象
      */
     private DataSource ds;

     /**
      * 保存当前DataSource对象中所有打开的Connection对象的引用。
      */
     private Vector openedConnections = new Vector();

     /**
      * 接收DataSource引用名,查找DataSource对象。
      *
      * @param ref DataSource引用名
      */
     protected DataSourcePackBean(String ref) {
         this.ref = ref;
         this.ds = lookup(ref);
     }

     public String getRef() {
         return ref;
     }

     public int getActive() {
         return openedConnections.size();
     }

     /**
      * 打开一个连接
      *
      * @param username 连接数据库的登录用户名,如果为null,表示用默认用户连接
      * @param password 连接数据库的登录密码
      * @return
      * @throws SQLException
      */
     public Connection getConnection(String username, String password) throws SQLException {
         Connection conn = (username == null) ? ds.getConnection() : ds.getConnection(username, password);
         // add to vector
         openedConnections.add(conn);
         // log
         StringBuffer log = new StringBuffer();
         log.append("Open").append(" a connection(").append(conn.hashCode()).append(") of [").append(ref).append("]\n");
         log.append(openedConnections.size()).append(" connection").append(" in use");
         logger.debug(log);
         // return
         return conn;
     }

     /**
      * 关闭一个连接
      *
      * @param conn
      * @throws SQLException
      */
     public void closeConnection(Connection conn) throws SQLException {
         conn.close();
         // remove from Vector
         openedConnections.remove(conn);
         // log
         StringBuffer log = new StringBuffer();
         log.append("Close").append(" a connection(").append(conn.hashCode()).append(") of [").append(ref).append("]\n");//添加内容到日志记录中
         log.append(openedConnections.size()).append(" connection").append(" in use");
         logger.debug(log);
     }

     /**
      * close all Connection of this DataSource
      * @throws SQLException
      */
     public void closeAll() throws SQLException {
         for (int i = 0; i < openedConnections.size(); i++) {
             ((Connection)openedConnections.get(i)).close();
         }
         // clear Vector
         openedConnections.removeAllElements();
     }

     /**
      * get a DataSource
      * @param ref the JNDI name of the DataSource
      * @return
      */
     private DataSource lookup(String ref) {
         DataSource dataSource = null;
         // 查找ref数据源对象
         try {
             Context env = new InitialContext();
             dataSource = (DataSource) env.lookup(ref);
             // 测试数据库有效性
             dataSource.getConnection().close();
             logger.debug(new StringBuffer().append("DataSource[").append(ref).append("] has been initialized successfully."));
         } catch (Exception e) {
             e.printStackTrace();
         }
         // return
         return dataSource;
     }

     public SQLRunnerIfc getSQLRunner(String username, String password) throws SQLException {
         return new SQLRunner(username, password, this);
     }

     public SQLRunnerIfc getSQLRunner() throws SQLException {
         return getSQLRunner(null, null);
     }
}

 

分享到:
评论

相关推荐

    log4j写入数据库配置

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

    Log4j写入数据库详解

    ### Log4j写入数据库详解 #### 一、Log4j简介 Log4j是一个流行的开源日志框架,由Apache Software Foundation开发维护。它提供了一种灵活的方式来控制日志的生成,使得日志的级别、格式以及输出目的地都可以在运行...

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

    下面是一个简单的`log4j.properties`配置示例,用于将日志写入数据库: ``` log4j.rootLogger=DEBUG, DBAppender log4j.appender.DBAppender=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DBAppender.URL=...

    ssmdemo+log4j写入数据库

    【标题】"ssmdemo+log4j写入数据库"是一个关于使用Spring、SpringMVC、MyBatis和Log4j框架集成实现日志记录到数据库的案例。在这个项目中,开发者正在探索如何将Log4j的日志信息存储在数据库中,以便进行更有效的...

    log4j日志写入数据库实例

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

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

    要将日志写入数据库,我们需要配置一个使用数据库Appender的Log4j配置文件。以下是一个基本的配置示例: ```xml &lt;appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"&gt; ...

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

    配置Log4j写入数据库,我们需要在`log4j.properties`或`log4j.xml`配置文件中设置DatabaseAppender。以下是一个基本示例: ```properties # log4j.properties配置示例 log4j.rootLogger=DEBUG, DB log4j.appender....

    日志配置到文件,数据库

    - `log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender`:指定了数据库输出的Appender类型为`JDBCAppender`。 - `log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/log4j`:连接数据库的URL。 ...

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

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

    配置log4j配置数据库连接池(以dbcp连接池为例),并将log信息存储在数据库中(以mysql为例)

    本教程将详细介绍如何配置Log4j以使用DBCP连接池,并将日志信息存储到MySQL数据库中。 首先,我们需要在项目中引入Log4j和DBCP的相关依赖。对于Maven项目,可以在pom.xml文件中添加如下依赖: ```xml ...

    Loger_slf4j写入数据表Demo

    一、运行部署 1、将LogerWriteMySqlDemo... 其示例中取warn级别及写入数据库配置:database 三、配置文件db.properties、log4j.properties两个配置文件可以通过servlet配置来使用,也可以直接先用DbUtil.java中先测试

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

    首先,确保你的应用程序连接到数据库,然后配置Log4j连接到同一个数据库。例如,使用JDBCAppender: ``` log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DB.URL=jdbc:mysql://localhost:...

    log4j实用配置扩展

    ### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。它主要用于记录Java应用程序的运行时信息,帮助开发者追踪应用程序的行为、调试问题以及进行性能...

    log4j 数据库,邮件,html 等配置

    《log4j数据库、邮件和HTML配置详解》 在IT行业中,日志记录是系统调试、性能监控和问题排查的关键工具。Log4j,作为Java领域广泛应用的日志框架,提供了强大的功能来满足这些需求。本文将深入探讨如何利用Log4j...

    log4j的eclipse工程,输出到文件的方式配置log4j

    "说明了这个Eclipse工程专注于展示如何配置log4j以将日志写入文件,而且是一个基础示例,适合初学者理解和实践。 **log4j配置文件详解** 在Log4j中,配置主要通过一个名为`log4j.properties`或`log4j.xml`的配置...

    log4j输出日志到数据库表中

    6. **性能考虑**:将日志写入数据库可能会对系统性能产生影响,因此需要合理配置日志级别,避免频繁的数据库操作。此外,可以使用异步方式写入日志,减少阻塞。 7. **日志审计与安全**:将日志存储在数据库中有利于...

    使用log4j 记录日志到数据库

    1. **配置Log4j**: - 创建或修改`log4j.properties`配置文件,添加数据库相关的Appender。例如: ``` log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender log4j.appender.db.URL=jdbc:mysql://localhost:...

    log4j使用笔记

    #### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...

    Log4net自定义信息(变量或属性或字段)存入数据库

    本主题聚焦于如何利用Log4net将自定义信息,如变量、属性或字段,存储到数据库中,这对于监控应用状态、分析错误和追踪性能异常至关重要。 首先,Log4net提供了一个灵活的配置机制,允许开发者通过XML配置文件或...

Global site tag (gtag.js) - Google Analytics