log4j 日志输出至数据库

1、首先配置log4j

 ### set log levels ###
log4j.rootLogger = INFO,stdout,file
#记录日志的内容
log4j.logger.SYSTEM = WARN,DATABASE

###  ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%-d{yyyy-MM-dd HH:mm:ss} - [ %p ]  %m%n

log4j.logger.com.ibatis = DEBUG  
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG  
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG  
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG  
log4j.logger.java.sql.Connection = DEBUG   
log4j.logger.java.sql.Statement = DEBUG  
log4j.logger.java.sql.PreparedStatement = DEBUG, fileout  
log4j.logger.java.sql.ResultSet = DEBUG  


log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n


#输入至数据库的类
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
#日志级别
log4j.appender.DATABASE.Threshold=WARN
#当有10条时一起存入数据库
#log4j.appender.DATABASE.BufferSize=10
log4j.appender.DATABASE.URL=${db.url}
log4j.appender.DATABASE.driver=${db.driver}
log4j.appender.DATABASE.user=${db.user}
log4j.appender.DATABASE.password=${db.password}
#数据库语句
log4j.appender.DATABASE.sql=INSERT INTO "M_TIMEPIECETASK_T_TASK_LOGS" VALUES (sys_guid(),'%m','%d{yyyy-MM-dd HH:mm:ss}','%c','%L','%l','%F','%p')

2、logger声明
log4j.logger.SYSTEM = WARN,DATABASE
第一个代表级别,第二个代表标识
如log4j.appender. DATABASE.BufferSize=10
类中声明时需要以:private Logger logger = Logger.getLogger("SYSTEM");
才能保证持久化到数据库中成功
3、log4j配置参数
以下为log4j中的配置参数:

%m 输出代码中指定的消息

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%t 输出产生该日志事件的线程名;

%n 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"

%d 输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2008年10月18日22:10:28:832

%c  输出所属的类目,通常就是所在类的全名,如“iNotes.Default”;

%l  输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数

%L 输出代码中的行数;

%F 输出代码中的文件名;

你可能感兴趣的:(log4j 日志输出至数据库)