log4j2 не генерирует журналы на промежуточной машине - PullRequest
0 голосов
/ 04 августа 2020

Я обновил log4j 1 до log4j2 в нашем проекте Spring. Журналы отлично работают на машинах Dev и QA. Но когда мы развертываем его на Staging, журналы не создаются. Когда мы включаем отладку, при запуске появляются логи. Но после этого замолкает без ошибок. Это мой файл конфигурации.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="my-project" packages="">
<Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{ISO8601} %-5p (%x) [%t] %c{1} - %m%n"/>
    </Console>

    <!-- Debug Logger -->
    <RollingFile name="DEBUG_LOG" fileName="/var/log/tomcat/my-project-backoffice-debug.log"
                 filePattern="/var/log/tomcat/my-project-backoffice-debug.log.%d{yyyy-MM-dd}.gz">
        <ThresholdFilter level="DEBUG"/>
        <PatternLayout  >
            <pattern>%d{ISO8601} %-5p (%x) [%t] %c{1} - %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
    </RollingFile>

    <!-- Info Logger -->
    <RollingFile name="INFO_LOG" fileName="/var/log/tomcat/my-project-backoffice-info.log"
                 filePattern="/var/log/tomcat/my-project-backoffice-info.log.%d{yyyy-MM-dd}.gz">
        <ThresholdFilter level="INFO"/>
        <PatternLayout  >
            <pattern>%d{ISO8601} %-5p (%x) [%t] %c{1} - %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
    </RollingFile>

    <!-- Warn Logger -->
    <RollingFile name="WARN_LOG" fileName="/var/log/tomcat/my-project-backoffice-warn.log"
                 filePattern="/var/log/tomcat/my-project-backoffice-warn.log.%d{yyyy-MM-dd}.gz">
        <ThresholdFilter level="WARN"/>
        <PatternLayout  >
            <pattern>%d{ISO8601} %-5p (%x) [%t] %c{1} - %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
    </RollingFile>

    <!-- Error Logger -->
    <RollingFile name="ERROR_LOG" fileName="/var/log/tomcat/my-project-backoffice-error.log"
                 filePattern="/var/log/tomcat/my-project-backoffice-error.log.%d{yyyy-MM-dd}.gz">
        <ThresholdFilter level="ERROR"/>
        <PatternLayout  >
            <pattern>%d{ISO8601} %-5p (%x) [%t] %c{1} - %m%n</pattern>
        </PatternLayout>
        <TimeBasedTriggeringPolicy />
    </RollingFile>

</Appenders>

<Loggers>
    <Logger name="org.springframework" level="INFO"/>
    <Root level="info">
        <AppenderRef ref="DEBUG_LOG"/>
        <AppenderRef ref="INFO_LOG"/>
        <AppenderRef ref="WARN_LOG"/>
        <AppenderRef ref="ERROR_LOG"/>
    </Root>
</Loggers>

Спасибо.

Обновление: Решение:

Была одна из старых зависимостей log4j (транзитивная) загружен на сценическую машину. Это странно, потому что пакет, созданный Jenkins, отлично работал на машинах Dev и QA. Поэтому я удалил все транзитивные зависимости, и после этого все заработало. Это транзитивные зависимости, которые я удалил.

commons-logging-1.1.1.jar
log4j-slf4j-impl-2.11.2.jar
log4j-1.2.17.jar
...