您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发

【原】log4j使用之JDBCAppender教程

不忘初心 不忘初心 2019-05-14 围观() 评论() 点赞() JAVA开发

简介:仅仅用log文件来记录是不够的,有丢失的风险不说,而且还无法做到灵活分析,log4j已经替我们考虑到了这一点,提供了JDBCAppender来解决这个问题,可以将日志持久化到数据库中。

前面几篇文章,已经将常用的日志记录方式讲述完毕,但仅仅用log文件来记录是不够的,有丢失的风险不说,而且还无法做到灵活分析,按照我们前面配置的日志打印规则,如果想要对log进行分析,就需要将log文件读出来进行解析,利用正则匹配找到我们想要的数据才可以进行分析。

log4j已经替我们考虑到了这一点,提供了很多的appender来解决这个问题,如:数据库、邮件、网络传输,今天就来看一下可以将日志写入到数据库的JDBCAppender

直接来看配置文件:log4j.properties

# 配置根logger,如果下面没有自定义logger,那么项目中的日志就都是debug级别,输出到console
log4j.rootLogger=DEBUG,console,database

# 屏蔽框架日志,只有报错的时候才放出来,优先级高于rootLogger
log4j.logger.org.springframework=ERROR
log4j.logger.org.apache.ibatis=ERROR
log4j.logger.org.mybatis.spring=ERROR
log4j.logger.com.mchange=ERROR

# 自定义包路径中的日志等级,直接写一个level即可,appender可选择,如果没写就默认使用rootLogger中配置的console
log4j.logger.com.ssm=DEBUG

# 打印出jdbc的日志
log4j.appender.java.sql.ResultSet=DEBUG
log4j.appender.java.sql.Connection=DEBUG
log4j.appender.java.sql.Statement=DEBUG
log4j.appender.java.sql.PreparedStatement=DEBUG

# 控制台(console)
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c - %m%n

# 应用于数据库
log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
#数据库地址
log4j.appender.database.URL=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true
#链接驱动
log4j.appender.database.driver=com.mysql.jdbc.Driver
#数据库账号
log4j.appender.database.user=test
#数据库密码
log4j.appender.database.password=111111
#插入日志的sql语句,插入的内容同样可以使用自定义格式
log4j.appender.database.sql=INSERT INTO log4j (message) VALUES('%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c - %m%n')
#选择输出方式
#log4j.appender.database.layout=org.apache.log4j.PatternLayout
#下面这一行可以省略了,因为日志直接输出到数据库中了,配了也是白配
#配置日志输出格式
#log4j.appender.database.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c - %m%n

跟我们平常使用jdbc一样,同样也需要url、driver、user、password这些配置,这些就不再多解释了,能插入数据库的关键就在于sql参数,它可以让我们配置一条insert语句,在输出日志的时候,log4j会来调用执行这条sql,此时就可以将日志插入到数据库中。

日志表结构:

create table log4j
(
	id         int(10)     primary key auto_increment,
	message  varchar(1000) default null comment '日志内容'
) engine = innodb auto_increment = 1 default charset = utf8mb4 comment '日志表';

运行的效果:

log4j使用之JDBCAppender教程

上面是我去数据库中截的图,格式都是跟console控制台保持一致的,由于我只是做演示,所以并没有做很细粒度的存储,全部日志都放到了一个message字段中,大家如果需要做分析统计,建议还是多弄几个字段。

log4j日志框架

看完文章,有任何疑问,请加入群聊一起交流!!!

很赞哦! ()

文章评论

  • 请先说点什么
    人参与,条评论

请使用电脑浏览器访问本页面,使用手机浏览器访问本页面会导致下载文件异常!!!

雨落无影

关注上方公众号,回复关键字【下载】获取下载码

用完即删,每次下载需重新获取下载码

若出现下载不了的情况,请及时联系站长进行解决

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们