使用EDAS后Log4j日志被覆盖导致Log4j日志无法正常输出

问题描述

使用EDAS后,Log4j日志无法正常输出。

问题原因

Log4j日志被覆盖,导致日志无法正常输出。

解决方案

  1. 将配置文件由默认名称改成其它名称。

    说明

    Log4j如果使用默认名称,Log4j会被自动屏蔽。

  2. 配置Spring的Log4jConfigListener内容,在web.xml中添加如下配置,修改配置文件的存放路径。

     <listener>
         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
     </listener>
     <context-param>
         <param-name>log4jConfigLocation</param-name>
         <param-value>WEB-INF/log4j-[$App_Name].xml</param-value>
     </context-param>     

    [$App_Name]:应用名称。

  3. 启动应用。

    说明
    1. Pandora首先加载内置的Log4j.jar包,同时加载Pandora内部配置的Log4j配置文件,此时不会加载业务应用的配置。

    2. Pandora加载完成后,在加载应用的web.xml文件时,会执行Log4jConfigListener以加载业务自定义的Log4j配置,保证业务的Log4j配置生效。