您现在的位置是:网站首页 > 代码编程 > 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 '日志表';
运行的效果:
上面是我去数据库中截的图,格式都是跟console控制台保持一致的,由于我只是做演示,所以并没有做很细粒度的存储,全部日志都放到了一个message字段中,大家如果需要做分析统计,建议还是多弄几个字段。
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们