log4j日志写入数据库

1.关系型数据库(postgresql)

1.1  log4j配置文件

#可以设置级别:debug>info>error   
#debug:显示debug、info、error   
#info:显示info、error   
#error:只error   
log4j.rootLogger=debug,info,database
#注意的地方database 对应 log4j.appender.database.URL的database 若认log4j.rootLogger=debug,info,db 那么 log4j.appender.database.URL的database 要改成db
#log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.logfile.DatePattern=.yyyy-MM-dd
#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
#输出到控制台   
#log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
#样式为TTCCLayout   
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout  
#设置级别:   
#log4j.rootLogger=debug,appender1   
  
#输出到文件(这里默认为追加方式)   
#log4j.appender.appender1=org.apache.log4j.FileAppender   
#设置文件输出路径   
#【1】文本文件   
#log4j.appender.appender1.File=c:/Log4JDemo02.log   
#【2】HTML文件   
log4j.appender.appender1.File=c:/Log4JDemo02.html   
#设置文件输出样式   
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout   
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] - - <%m>%n
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern=.yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] wang- <%m>%n
#log4j.appender.db=com.neam.commons.MyJDBCAppender
#下面是配置将日志信息插入数据库,
#配置输出目标为数据库(假如要将日志在控制台输出,配置为log4j.appender. stdout =org.apache.log4j.ConsoleAppender;将日志写入文件,配置为log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
#这样的配置在许多地方都要有,需要可查有关资料),当然你也可以自己扩展org.apache.log4j.jdbc.JDBCAppender这个类,只需要在这里配置就可以了例如我们配置我自己扩展的MyJDBCAppender,配置为#log4j.appender.db=com.neam.commons.MyJDBCAppender
log4j.appender.database.Threshold=info
#定义什么级别的错误将写入到数据库中
log4j.appender.database.BufferSize=1
#设置缓存大小,就是当有1条日志信息是才忘数据库插一次
log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.database.driver=org.postgresql.Driver
#设置要将日志插入到数据库的驱动
log4j.appender.database.URL=jdbc:postgresql://localhost:5433/log
log4j.appender.database.user=postgres
log4j.appender.database.password=1234
log4j.appender.database.sql=insert into wdzlog (class,method,createTime,logLevel,msg) values ('%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
log4j.appender.database.layout=org.apache.log4j.PatternLayout 


1.2 添加jar包:


1.3 创建数据库

CREATE TABLE wdzlog (
    class varchar (255)   NULL ,--类名
    method varchar (255)   NULL ,--方法名
    createTime varchar (255)   NULL ,--产生时间
    logLevel varchar (20)   NULL ,--日志级别
    msg varchar (555)   NULL --日志信息

) 

1.4 正常日志就可以插入到数据库中



2. nosql 数据库(mongodb)

2.1.首先下载并安装mongoDB,并运行 ,下载安装请参考我的上篇博文
版本要求(MongoDB Server v2.0+ (tested with 2.2.2))

2.2 下载Mongo Java driver jar包

2.3.下载 Log4J jar包 注意版本,一定要1.2.16及以上。

2.4.下载 log4mongo-java jar包

2.5.请将这三个jar文件放置在你的项目classpath中。



2.6.在你的classpath中创建一个名为log4j.properties的文件

# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=DEBUG, CONSOLE, R, MongoDB
#log4j.rootCategory=FILE,R

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %d  [%t] %C.%M(%L) |%m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.logger.com.eightspace.baccy=INHERIT,R
log4j.additivity.com.eightspace.hd=false
log4j.appender.R.File= /var/log/mbp_server/
log4j.appender.R.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.R.Append=true
log4j.appender.R.Threshold=ERROR
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-4r %d [%t] %-5p %c %x - %m%n

log4j.appender.MongoDB=org.log4mongo.MongoDbAppender
log4j.appender.MongoDB.databaseName=appname
log4j.appender.MongoDB.collectionName=log
log4j.appender.MongoDB.hostname=192.168.1.4
log4j.appender.MongoDB.port=27017


启动系统后,进入mongodb数据库 show dbs,可以看到相应的appname数据库及旗下的数据collections



参考资料:http://demojava.iteye.com/blog/1067627

                   http://my.oschina.net/chinaearl/blog/111552



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值