Spring boot配置log4j输出日志

1. pom.xml文件中配置parent,版本选定[1.2.5.RELEASE]

  关于为什么要选这个版本:我尝试使用[1.4.1.RELEASE],但该版本库里没有[spring-boot-starter-log4j.jar],后面要使用这个jar,使用[1.2.5.RELEASE]版本的[spring-boot-starter-log4j.jar]来顶替,一直没有成功。也许是我哪里配置不对,无法可想,只好把parent版本降至[1.2.5.RELEASE]

  并不是说一定要用这个版本,有兴趣的可以尝试一下其他版本。

  <parent> 
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.2.5.RELEASE</version>
  </parent>

2. 删除pom.xml文件中所有对日志jar包的引用

  例如下面两个,如果不删除,和后面将要加入的依赖jar包会有冲突,导致日志不能正常输出到文件

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
    </dependency>

3. 排除spring boot对[spring-boot-starter-logging]的依赖,并增加依赖包[spring-boot-starter-log4j.jar]

  话说步骤2中不是删除了对[spring-boot-starter-logging]的依赖吗,为什么还要再次排除呢?原因:可以点开[Effective POM]查看,parent中依然有两处对[spring-boot-starter-logging]的依赖。

    <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>
       
     <dependency> 
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
     </dependency>

4. 增加log4j.properties配置

  配置每天输出一个日志文件.

log4j.rootLogger=info,ServerDailyRollingFile,stdout

log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=D://test/test.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p [%c] - %m%n
log4j.appender.ServerDailyRollingFile.Append=true

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n

至此配置完毕,赶快重启服务看看效果吧。

原文地址:https://www.cnblogs.com/zj0208/p/6149852.html