前言:
由于开发过程中总是会出现一些当时觉得莫名其妙的问题,排查问题时很难定位到具体的位置,所以这个时候如果加入日志可以在控制台打印出日志记录,遍能很快定位到问题的位置;
1、sql打印
前面一篇有提到过通用mapper日志打印(会把查询到的列值也打印出来)的方法,这里还有另一种方法
pom加了log4j依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
yml加入配置:
logging:
level:
com.cmf: debug
这里可以看见虽然正常打印了sql但是中间出现了报错,虽然不影响使用,但看着多少有点碍眼,百度后发现是少了log4j.properties配置文件且该文件需放在source资源目录下;
log4j.properties:
此时还有一个错误提示!
解决方法:log4j.properties文件按这个博主的替换一下就没有错误提示了。
另一位博主发布的文章中有该文件内容,直接去看
2、控制行信息打印
类添加@slf4j注解 lombok插件中的注解
加入这个注解可以使用log方法打印日志到控制台
遗留问题:至今没有找到在本地idea运行项目时怎么只输出debug日志到指定的日志文件中???
3、由于2的遗留问题,后面问了公司大佬说是引入的log4j依赖和springboot默认的日志jar包冲突,所以配置没生效,我直接把最上面的log4j包去掉了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
可以看见最早创建项目时导入的jar包里面包含了log
上面web包一直往里走,里面有个依赖如下:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.13.3</version>
<scope>compile</scope>
</dependency>
现在可以直接使用这个log4j导出日志
此时在yml配置文件中配置下面信息就可以实现之前说的将指定级别的日志导出到对应目录下文件中
##############
#
#日志目录和级别配置
#
###############
logging:
level:
com.cmf: info --日志级别
file:
name: c:\\logs\\log.txt --日志导出目录
平常在项目开发中,最常用的是debug和info级别;
debug一般我们开发人员调试的时候使用较多,info打印出来的多是生产环境需要的关键信息。