Файл конфигурации Log4j2.xml не найден после изменения конфигурации - PullRequest
0 голосов
/ 26 февраля 2019

У меня проблема с файлом конфигурации 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>

Запуск этого фрагмента кода вбэк-бин для страницы прекрасно работал с исходным файлом конфигурации.

    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.

Файл конфигурации находится в том же месте, в котором он находился при входе в систему.работал, это в исходном пакете по умолчанию.Я переместил его WEB-INF, чтобы увидеть, изменит ли это что-то, но та же проблема остается.Я даже изменил его обратно на исходную конфигурацию и все еще имею ту же проблему.

...