利用log4j的JDBCAppender把日志写入数据库中

log4j提供了多种Appender,通过这些Appender可以把log4j产生的日志写到数据库中,把所用的日志集中起来管理,能够进行日志的分析和集中监控,提升系统的可维护性和系统的可用性,下面是我利用derby嵌入式数据库,写入数据库的配置:

在log4j文件中,增加关于JDBCAppender的配置:

 

xml
  1. < appender   name = "db"   class = "org.apache.log4j.jdbc.JDBCAppender" >   
  2.     < param   name = "driver"   value  = "org.apache.derby.jdbc.EmbeddedDriver"   />   
  3.     < param   name = "URL"   value  = "jdbc:derby:logdb;create=true" />   
  4.     < param   name = "user"   value  = "" />   
  5.     < param   name = "password"   value = "" />   
  6.     < param   name = "sql"   value  = "INSERT INTO LOG4J (Date, Logger, Priority, Thread, Message) VALUES ('%d', '%c', '%p', '%t', '%m')" />   
  7. </ appender >   

数据库为logdb,用户名和密码为空,这两项必须设,因为JDBCAppender中有默认值,如果不设连接数据库会报错。

LOG4J  表的生成SQL语句为:

xml
  1. create   table  log4j( Date   varchar (100), Logger  varchar (1000), Priority  varchar (100), Thread  varchar (30), Message  varchar (1000));  

然后在log4j.xml配置文件中,把db appender添加到需要的logger中,如下:


xml
  1. < logger   name  =  "org.tkxing"   additivity  =  "false" >   
  2.     < level   value  =  "DEBUG" />   
  3.     < appender-ref   ref  =  "logfile" />   
  4.     < appender-ref   ref = "stream"   />    
  5.     < appender-ref   ref = "db" />   
  6. </ logger >   

 

xml
  1. < logger   name  =  "org.tkxing"   additivity  =  "false" >   
  2.     < level   value  =  "DEBUG" />   
  3.     < appender-ref   ref  =  "logfile" />   
  4.     < appender-ref   ref = "stream"   />    
  5.     < appender-ref   ref = "db" />   
  6. </ logger >   

就可以把日志内容输入到数据库中了。

你可能感兴趣的:(appender)