更改配置后找不到Log4j2.xml配置文件

时间:2019-02-26 14:16:19

标签: java logging log4j2

在对配置文件进行更改后,找不到log4j2.xml配置文件时出现了问题。在更改之前,已找到文件并且简单的日志记录正在运行。几年来我一直没有使用过log4j,并且一直在将java.util日志记录用于weblogic服务器上的应用程序日志记录,因此我决定再次使用log4j。

我首先创建一个简单的配置文件,对其进行了测试,一切正常。

原始测试配置。

<?xml version="1.0" encoding="UTF-8"?>
  <Configuration>
     <Properties>
       <Property name="filename">/opt/www/log</Property>
     </Properties>
     <Appenders>
       <RollingFile name="StipLog" fileName="${filename}/stip-log.log" filePattern="${filename}/stip-log-%d{yyyy-MM-dd}.log">
           <PatternLayout>
               <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
            </pattern>
          </PatternLayout>
          <Policies>
              <TimeBasedTriggeringPolicy interval="1" modulate="true" />
           </Policies>
       </RollingFile>
   </Appenders>
   <Loggers>
      <Logger name="stip-debug" level="debug" additivity="true">
          <appender-ref ref="StipLog" level="debug"/>
      </Logger>
      <Root level="debug">
          <AppenderRef ref="StipLog"/>
      </Root>
    </Loggers>
  <Configuraiton>

在页面的后备bean中运行此代码段与原始配置文件配合得很好。

    LOGGER.info("APP Home Page: User: ".concat(userInfoBean.getUserName()));
    LOGGER.debug("DEBUG message!");
    LOGGER.error("ERROR Message", new NullPointerException("I AM NULL"));

一切顺利,所以我决定尝试为每个要使用的日志级别配置不同的附加程序。我将原始配置更改为以下内容。

<?xml version="1.0" encoding="UTF-8"?>
   <Configuration>
    <Properties>
      <!-- For local logging change this porperty to a local directory. ex: C:\\Public\\log -->
      <Property name="LOGGING_ROOT">C:/Public/log</Property>
  </Properties>
  <Appenders>
    <!-- file appenders -->
      <RollingFile name="debugLog" fileName="${LOGGING_ROOT}/app-debug.log" filePattern="${LOGGING_ROOT}/app-debug-%d{yyyy-MM-dd}-%i.log">
        <LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
            </pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true" />
        </Policies>
        <DefaultRolloverStrategy max="10"/>
      </RollingFile>
      <RollingFile name="infoLog" fileName="${LOGGING_ROOT}/app-info.log" filePattern="${LOGGING_ROOT}/app-info-%d{yyyy-MM-dd}-%i.log">
          <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
           <PatternLayout>
              <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
              </pattern>
          </PatternLayout>
          <Policies>
              <TimeBasedTriggeringPolicy interval="1" modulate="true" />
          </Policies>
          <DefaultRolloverStrategy max="10"/>
       </RollingFile>
      <RollingFile name="errorLog" fileName="${LOGGING_ROOT}/app-error.log" filePattern="${LOGGING_ROOT}/app-error-%d{yyyy-MM-dd}-%i.log">
          <LevelRangeFilter minLevel="ERROR" maxLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
          <PatternLayout>
             <pattern>
                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
            </pattern>
          </PatternLayout>
          <Policies>
              <TimeBasedTriggeringPolicy interval="1" modulate="true" />
          </Policies>
          <DefaultRolloverStrategy max="10"/>
      </RollingFile>
      <!-- console appender -->
      <Console name="console" target="SYSTEM_OUT">
          <PatternLayout   pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
    </Console>
  </Appenders>
  <Loggers>
      <Logger name="debug-logger" level="debug" additivity="true">
          <appender-ref ref="debugLog"/>
      </Logger>
      <Logger name="info-logger" level="info" additivity="true">
          <appender-ref ref="infoLog"/>
      </Logger>
      <Logger name="error-logger" level="error" additivity="true">
          <appender-ref ref="errorLog"/>
      </Logger>
      <Root level="all">
          <AppenderRef ref="console"/>
          <AppenderRef ref="debugLog"/>
          <AppenderRef ref="infoLog"/>
          <AppenderRef ref="errorLog"/>
      </Root>
  </Loggers>
</Configuration>

更改配置文件后,现在在部署应用程序时收到以下错误消息。

  

错误StatusLogger找不到log4j2配置文件。使用默认配置:仅将错误记录到控制台。将系统属性“ org.apache.logging.log4j.simplelog.StatusLogger.level”设置为TRACE,以显示Log4j2内部初始化日志记录。

配置文件与loggin工作时的位置相同,位于源默认软件包中。我将其移至WEB-INF,以查看是否会有所作为,但仍然存在相同的问题。我什至将其更改回原始配置,仍然存在相同的问题。

0 个答案:

没有答案