SpringBoot之SpringBoot整合log4j
添加Maven依赖修改POM.xml
在默认的情况下,SpringBoot自动整合了最简单的logback,那么要想使用log4j就要先排除默认的日志框架,然后添加log4j场景启动器
修改的是web的场景启动器,增加的是log4j的场景启动器,因为在新版中是没有spring-boot-starter的,所以加到了web中,记得添加lombok不知道如何集成的,请参考《SpringBoot之SpringBoot整合lombok》
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 排除自带的logback依赖 --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
新建log4j.properties
log4j.properties
#定义根节点 log4j.rootLogger=DEBUG,error,CONSOLE,info #设置控制台打印 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender #设置为格式化打印 PatternLayout log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n #设置info级别的日志 log4j.logger.info=info #输出到日志文件 log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n #日期文件名格式化 log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = info #是否追加 log4j.appender.info.append=true #文件存放位置 log4j.appender.info.File=E:/dance/demo/log/info.log log4j.logger.error=error log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = error log4j.appender.error.append=true log4j.appender.error.File=E:/dance/demo/log/error.log log4j.logger.DEBUG=DEBUG log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd log4j.appender.DEBUG.Threshold = DEBUG log4j.appender.DEBUG.append=true log4j.appender.DEBUG.File=E:/dance/demo/log/dubug.log
配置文件解读:我觉得这个解读比较不错,想了解具体含义的可以看看
修改配置文件application.yml
logging: # 设置logback.xml位置 # config: classpath:log/logback.xml # 设置log4j.properties位置 config: classpath:log4j.properties
启动项目测试:
info日志成功输入到info.log
访问接口不穿参数,看一下错误日志是否会记录
查看日志
在这里我发现了一个问题,就是当程序报错的时候明明是error级别的错误,但是log4j打印出来的却是debug级别所以error文件,根本写不进去东西
测试:
log4j控制台输出调为 info级别
访问接口
error级别错误
控制台都没有显示的
尝试降低控制台日志级别为debug
再次测试
打印出来居然是debug级别的,在网上找了找,说是需要调整到warn级别,再次尝试
emmm都不想贴图了,一点反应没有了,尝试在程序中手动打印error级别错误,看看能不能写到文件中
emm,手动写的写进入了
好吧,也算是能用了,推荐使用SpringBoot默认集成的Logback
作者:彼岸舞
时间:2021\01\26
内容关于:SpringBoot
本文来源于网络,只做技术分享,一概不负任何责任