log4j 输出到 mysql_Log4j官方文档翻译(九、输出到数据库)

log4j提供了org.apache.log4j.JDBCAppender对象,可以把日志输出到特定的数据库。

常用的属性:

bufferSize 设置buffer的大小,默认是1

driver 设置数据库的驱动字符串,比如sun.jdbc.odbc.OdbcDriver

layout 设置使用的layout,默认是org.apache.log4j.PatternLayout

password 设置数据的密码

sql 设置每次日志产生的时候执行的sql语句,可以是INSERT,UPDATE,DELETE

URL 设置JDBC URL

user 设置数据库的用户名

在输出日志之前,还应该创建数据库中的表,执行下面的SQL语句

CREATE TABLE LOGS

(USER_ID VARCHAR(20) NOT NULL,

DATED

DATE NOT NULL,

LOGGER VARCHAR(50) NOT NULL,

LEVEL

VARCHAR(10) NOT NULL,

MESSAGE VARCHAR(1000) NOT NULL

);

log4j.properties文件配置

下面是JDBCAppender的相关配置:

log4j.rootLogger = DEBUG, DB

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DB.URL=jdbc:mysql://localhost/DBNAME

log4j.appender.DB.driver=com.mysql.jdbc.Driver

log4j.appender.DB.user=user_name

log4j.appender.DB.password=password

log4j.appender.DB.sql=INSERT INTO LOGS VALUES('%x','%d','%C','%p','%m')

log4j.appender.DB.layout=org.apache.log4j.PatternLayout

对于MySQL数据库来说,当创建了LOGS表后你还需要使用dbname,user_name,password。

如果在xml中配置可以参考如下:

``

``

代码样例

下面这个例子,在java代码中使用了Log4j输出:

import org.apache.log4j.Logger;

import java.sql.*;

import java.io.*;

import java.util.*;

public class log4jExample{

/* Get actual class name to be printed on */

static Logger log = Logger.getLogger(log4jExample.class.getName());

public static void main(String[] args)throws IOException,SQLException{

log.debug("Debug");

log.info("Info");

}

}

编译和执行

执行后就可以查询结果了:

mysql > select * from LOGS;

+---------+------------+--------------+-------+---------+

| USER_ID | DATED

| LOGGER

| LEVEL | MESSAGE |

+---------+------------+--------------+-------+---------+

|

| 2010-05-13 | log4jExample | DEBUG | Debug

|

|

| 2010-05-13 | log4jExample | INFO | Info

|

+---------+------------+--------------+-------+---------+

2 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值