zoukankan      html  css  js  c++  java
  • SpringBoot集成log4j,解决log4j.properties不生效问题

    Spring Boot集成log4j其实比较简单,maven的话,在xml中增加log4j依赖就行

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
    <version>1.3.8.RELEASE</version>
    </dependency>

    然后配置log4j.properties(每一行是啥意思,自行百度)

    log4j.rootLogger=info,stdout, infofile
    ######################################################################
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    ######################################################################
    log4j.appender.infofile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.infofile.File=/log/infofile-log.log
    log4j.appender.infofile.Append=true
    log4j.appender.infofile.Threshold=info
    log4j.appender.infofile.layout=org.apache.log4j.PatternLayout
    log4j.appender.infofile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
    log4j.appender.infofile.encoding=GBK

    但是、启动项目后,我发现并没有生成 /log/infofile-log.log 文件

    网上查了一下,大概原因是jar包冲突,因为 spring-boot-starter-web、spring-boot-starter-data-jpa、spring-boot-starter-jdbc等下面有一些logback、log4j、slf4j等相关的包,我用 dependency:tree命令查到具体是那些jar,然后一一排除,这样再启动时,就会发现 infofile-log.log文件创建成功了

    这种方法比较繁琐,但是可以更理解jar包依赖关系

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <exclusions>
    <exclusion>
    <groupId>org.slf4j</groupId>
    <artifactId>*</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
    <exclusion>
    <groupId>ch.qos.logback</groupId>
    <artifactId>*</artifactId>
    </exclusion>
    <exclusion>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>*</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <exclusions>
    <exclusion>
    <groupId>org.slf4j</groupId>
    <artifactId>*</artifactId>
    </exclusion>
    </exclusions>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
    <version>1.3.8.RELEASE</version>
    </dependency>

     --------------------------------------------------------------------------------------------------------------------------------------------------------------

    看这里,更优雅一些: https://www.cnblogs.com/myfrank/p/14286815.html

  • 相关阅读:
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    block的是发送信号的线程,又不是处理槽函数的线程
  • 原文地址:https://www.cnblogs.com/myfrank/p/13730415.html
Copyright © 2011-2022 走看看