SpringBoot之SpringBoot整合log4j

SpringBoot之SpringBoot整合log4j

添加Maven依赖修改POM.xml

在默认的情况下,SpringBoot自动整合了最简单的logback,那么要想使用log4j就要先排除默认的日志框架,然后添加log4j场景启动器

SpringBoot之SpringBoot整合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

SpringBoot之SpringBoot整合log4j

 

 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

SpringBoot之SpringBoot整合log4j

 

 

访问接口不穿参数,看一下错误日志是否会记录

SpringBoot之SpringBoot整合log4j

 

 

 查看日志

在这里我发现了一个问题,就是当程序报错的时候明明是error级别的错误,但是log4j打印出来的却是debug级别所以error文件,根本写不进去东西

测试:

  log4j控制台输出调为 info级别

访问接口

SpringBoot之SpringBoot整合log4j

 

 

error级别错误

SpringBoot之SpringBoot整合log4j

 

 

 控制台都没有显示的

尝试降低控制台日志级别为debug

SpringBoot之SpringBoot整合log4j

 

 

 再次测试

SpringBoot之SpringBoot整合log4j

 

 

 打印出来居然是debug级别的,在网上找了找,说是需要调整到warn级别,再次尝试

emmm都不想贴图了,一点反应没有了,尝试在程序中手动打印error级别错误,看看能不能写到文件中

SpringBoot之SpringBoot整合log4j

emm,手动写的写进入了

SpringBoot之SpringBoot整合log4j

 

 好吧,也算是能用了,推荐使用SpringBoot默认集成的Logback

作者:彼岸舞

时间:2021\01\26

内容关于:SpringBoot

本文来源于网络,只做技术分享,一概不负任何责任

上一篇:SSM框架整合


下一篇:Python Turtle绘图[难度3星]:24节气倒计时(2.使用字典存储数据)