springboot集成log4j2,日志不输出到文件

本文介绍了Log4j与Log4j2的区别,并详细讲述了SpringBoot项目中集成Log4j2时日志无法输出到文件的原因,即未排除默认的日志框架spring-boot-starter-logging,导致日志只输出到控制台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在所有的项目都要集成公司统一鹰眼系统,方便系统日志的统一管理,日志分析,日志的维护。于是看了看鹰眼系统,集成必须要求日志框架为log4j2,看之前的项目基本都是log4j,于是看了看log4j和log4j2的区别。发现以前竟然没关注到这个东西,说实在感觉很惭愧。于是简单的总结了几点区别。

一、log4j

1、log4j需要引入一个依赖

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

2、log4j的配置文件一般推荐使用properties文件

3、还需要定义监听器,通过spring找到log4j

    <!--由Spring载入的Log4j配置文件位置-->
    <context-param>
       <param-name>log4jConfigLocation</param-name>
       <param-value>/WEB-INF/log4j.properties</param-value>
    </context-param>
    <listener>
       <listener-class>
           org.springframework.web.util.Log4jConfigListener
       </listener-class>
    </listener>

二、log4j2

    1、log4j2需要引入2个依赖

        <dependency>  
                <groupId>org.apache.logging.log4j</groupId>  
                <artifactId>log4j-api</artifactId>  
                <version>${log4j.version}</version>  
                <scope>compile</scope>  
        </dependency>  
        <dependency>  
                <groupId>org.apache.logging.log4j</groupId>  
                <artifactId>log4j-core</artifactId>  
                <version>${log4j.version}</version>  
                <scope>runtime</scope>  
        </dependency>

    2、log4j2不用使用监听器加载,默认就是加载resources目录下,但配置文件名称必须为log4j2.xml

三、springboot集成log4j2,日志不输出到文件

<!--******************************************log4j2************************************************-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</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-log4j2</artifactId>
   <version>${starter-log4j2}</version>
</dependency>

原因是没有将spring-boot-starter-logging排除,应为springboot默认是以logback为日志框架的实现。仅记录到控制台,不会写入日志文件。

转载于:https://my.oschina.net/u/2610056/blog/3004010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值