欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Springboot整合(3)——log4j

程序员文章站 2022-03-01 20:34:15
...

Springboot整合(3)——log4j

1. 创建log4j.properties,先把日志级别设置为debug

#logger level default is INFO

log4j.rootLogger=debug,console,file

 

#append to console

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d%p-%m%n

 

#append to file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=WEB-INF/logs/web.log

log4j.appender.file.MaxFileSize=1MB

log4j.appender.file.MaxBackupIndex=10000

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d%p-%m%n

 

#Debug

log4j.logger.java.sql.Connection=debug

log4j.logger.java.sql.Statement=debug

log4j.logger.java.sql.PreparedStatement=debug

 

3. pom中增加log4j的依赖

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-log4j</artifactId>

            <version>1.3.8.RELEASE</version>

        </dependency>

根据我们以前使用spring的经验,到此log4j应该就算配置好了,试一下,启动项目


Springboot整合(3)——log4j
            
    
    博客分类: 框架整合

 

发现控制台打印的日志仍然是info级别,即配置文件中的debug设置并未生效。这是springboot中使用log4j的一个特殊的地方(至少本文使用的版本是这样),只是引入spring-boot-starter-log4j还不够,还需要做一个特殊配置,排除spring-boot-starterspring-boot-starter-logging的依赖,否则就会造成jar包冲突,无法使用log4j,我们增加如下配置:

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter</artifactId>

            <exclusions>

                <exclusion>

                    <groupId>org.springframework.boot</groupId>

                    <artifactId>spring-boot-starter-logging</artifactId>

                </exclusion>

            </exclusions>

        </dependency>

再次测试,已经有debug信息打出来了

 

 
Springboot整合(3)——log4j
            
    
    博客分类: 框架整合
 

4. 第二步配置中将日志级别设置为了debug是为了第三步看的清楚,但如果真的使用debug级别的话, spring自身会打出大量的debug信息,对实际开发基本无意义,所以把日志级别改回info

log4j.rootLogger=info,console,file

之后就会有另一个问题,在访问http://localhost:8088/KnowledgeIsland/user/list时,后台不会打印sql语句,然而在开发阶段,打印sql语句对开发的意义是不言而喻的,这个时候就需要单独为一些包设置打印级别,做法就是在log4j.properties里增加子log配置(关于log4j的配置的详细内容可参考我之前的文章), 单独为我们编写的代码包开启debug级别的日志:

#children log

log4j.logger.tech.luoyu.ki=debug

 

再次运行,springdebug信息已经不再打印,sql正常打印,完成


Springboot整合(3)——log4j
            
    
    博客分类: 框架整合
 

  • Springboot整合(3)——log4j
            
    
    博客分类: 框架整合
  • 大小: 33.3 KB
  • Springboot整合(3)——log4j
            
    
    博客分类: 框架整合
  • 大小: 21.7 KB
  • Springboot整合(3)——log4j
            
    
    博客分类: 框架整合
  • 大小: 32 KB