Log4j2 останавливает запись в файл журнала после очистки файла журнала - PullRequest
1 голос
/ 21 июня 2019

Я запускаю свое приложение в WebLogic в среде Linux. после очистки содержимого файла журнала, используя ">log4j2.log". мое приложение вообще перестает регистрироваться.

Я попытался перезапустить приложение, а затем и сервер, но журналы по-прежнему отсутствуют. также попытался удалить файл с помощью команды rm -f, а затем выполнить перезагрузку, но все еще не заносил логи. см. конфигурацию ниже.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" monitorInterval="60">
    <Appenders>
        <RollingFile name="RollingFileAppender"
                     fileName="./PortalLogs/log4j2.log"
                     filePattern="./PortalLogs/log4j2.log.%i.%d{yyyy-MM-dd}"
                     immediateFlush="true">
            <PatternLayout>
                <Pattern>%d %-5p [%X{messageExtTxt}] [%c] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" />
                <SizeBasedTriggeringPolicy size="10MB"/>
            </Policies>
            <RegexFilter regex="*DefaultMessageListenerContainer*" onMatch="DENY" onMismatch="ACCEPT"/>
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="org.springframework.jms.listener.DefaultMessageListenerContainer" level="ERROR" >
            <AppenderRef ref="RollingFileAppender"/>
        </Logger>
        <Root level="INFO">
            <AppenderRef ref="RollingFileAppender" level="INFO"/>
        </Root>
    </Loggers>
</Configuration>

Когда я попытался использовать вместо этого удаление из WinSCP, а затем перезапустил сервер, файлы журнала были снова созданы и с журналами в нем.

У меня вопрос: есть ли способ безопасно очистить файлы журнала, не вызывая этой проблемы? заранее спасибо!

РЕДАКТИРОВАТЬ: RM Linux в файле журнала перед перезапуском сервера фактически работает и воссоздает файл журнала, но все же есть ли способ заставить его работать, используя "> log4j2.log" или после изменения файла? нам это нужно, так как у нас есть протокол для первоначального запуска автоматизированных тестов, очистки всего и последующего фактического запуска.

...