Записать в файл журнала во время работы процесса - PullRequest
0 голосов
/ 10 октября 2018

Вероятно, это очевидно, и поэтому я не могу найти ответ на этот вопрос ... Как я могу записать в свой файл журнала, пока программа работает.Я использую log4j-API со следующим log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace">
    <Properties>
        <Property name="log-path">./logs/</Property>
    </Properties>
    <Appenders>
        <RollingFile name="fileLogger" fileName="${log-path}/test-${date:dd-MM-yyyy}.log"
                 filePattern="${log-path}/test-%d{dd-MM-yyyy}%i.log">
        <PatternLayout>
            <pattern>[%-5level] %d{dd-MM-yyyy HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            <SizeBasedTriggeringPolicy size="100 MB"/>
        </Policies>
        <DefaultRolloverStrategy max="4"/>
    </RollingFile>

    <Console name="console" target="SYSTEM_OUT">
        <PatternLayout pattern="[%-5level] %d{dd-MM-yyyy HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
    </Console>
</Appenders>
<Loggers>
    <Logger name="net.wunds" level="all" additivity="true">
        <appender-ref ref="fileLogger"/>
    </Logger>
</Loggers>

Само ведение журнала работает нормально, я также вижу свои журналы в консоли, но только мой файл журналаобновляется после завершения моей программы.Может кто-нибудь сказать, почему это так?Я в отчаянии ...

1 Ответ

0 голосов
/ 10 октября 2018

Вы должны установить немедленное заполнение = true для RollingFile.

См. Log4j Appenders

...