(资料图片仅供参考)

前言

开发中,排除线上问题,最好的方法无疑是查看日志。如何正确的记录日志,是每一个开发人员应该掌握的技能。很多时候,日志记录的好坏,决定了排查问题的速度。

日志级别

日志一般常用的四种级别: debug(开发时用) info (记录一些日志追踪信息)warn(警告,可以通过警告哟花程序)error(发生错误,这个也是我们最值得关注的)

集成日志

springboot 默认集成了logback,可以读取log-spring.xml 的配置,日志的输出一般常用的有以下几种方式: 1 输出到文件 2 输出到邮件 3 输出到数据库

实践配置log-spring.xml 对应的appender1 文件appender

这里选择按时间滚动输出(按配置会根据文件的大小按日期自动生成多个文件,这里要合理的配置文件的大小,一般建议10m , 太多了查看起来不方便)

2 邮件appender

这个通常是将error级别的错误发送到某个邮件,这样就可以及时的提醒收件人,这里的日志发送是异步的,所以对程序的影响可以忽略不计。

3 数据库DBAppender

很多时候日志文件查询信息,很是麻烦,需要登录到服务器,然后去查看日志,一般如果有运维的话,自己没权限访问服务器,还要麻烦运维,这个时候我们就可以考虑,将一些信息放入数据库,logback也是很好的提供了支持,为我们提供了需要用到的表结构,支持多种数据类型,脚本位置如图

这里还需要单独引入DBAppender,新版本去掉了此类,需要引入新的jar包

最后的配置如下

注意: 这里添加了一个连接池来与DBAppender关联,为了提高数据库的写入效率,加入后可由原来的大约10ms缩短到1ms,这就是池技术的好处,可以提升10倍性能。

总结

第一种文件记录日志的方式是大家最常用的,但是一般不推荐直接查看日志文件,可以通过分布式日志系统,比如elk 采集异步采集文件,然后查找日志。推荐大家将这几种方式结合起来,根据自己的需求来合理搭配使用,提高开发效率。

推荐内容