[概述]
项目中使用log4j输出到数据库,记录用户访问系统的次数
[环境说明]
spring开发
使用的jar包
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
[问题描述]
设置缓存10条记录再插入数据库
注释输出到控制台
于是就出现,插入的10条记录的[方法名],[类名]都重复的问题(最后一次的访问记录覆盖前面9次的记录)
[情况二]
开启输出到控制台的功能, 数据库插入的记录就会正确
[log4j配置文件]
log4j.rootLogger=debug,db,stdout
log4j.logger.org.springframework=error
log4j.logger.com.mchange=error
## 输出到数据库
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.Threshold=info
log4j.appender.db.layout=org.apache.log4j.PatternLayout
log4j.appender.db.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
log4j.appender.db.BufferSize=10
log4j.appender.db.driver=com.mysql.jdbc.Driver
log4j.appender.db.URL=jdbc\:mysql\://127.0.0.1\:3306/ztyx?useUnicode\=true&characterEncoding\=utf8
log4j.appender.db.user=root
log4j.appender.db.password=pass
log4j.appender.db.sql=insert into t_user_log (ACTION_DATE,ACTION_USER,CLASS,METHOD,RESULT,REM) VALUES ('%d{yyyy-MM-dd HH:mm:ss}','%X{user}','%C{1}','%M','%X{rs}','%m')
## 输出到控制台
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=info
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,SSS} [%p] {%t} at %c.%M(%c{1}.java:%L)%n%m%n