Подтвердить что ты не робот

Можно ли настроить log4j для создания нового файла при каждом запуске приложения?

Например, при первом запуске приложения (или сразу после того, как я удаляю каталог /logs ), я хочу, чтобы log4j записывал журналы приложений в файл с именем log.0. Затем я выхожу из приложения и перезапускаю его, я хочу, чтобы журналы записывались в log.1. И так далее.

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

Возможно ли это? Если да, то как?

4b9b3361

Ответ 2

Решение с log4j2:

        <RollingFile name="RollingFile" fileName="${log-path}/GScraper.log"
                 filePattern="${log-path}/GScraper_%d{yyyy-MM-dd}_%i.log">
        <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout>
            <pattern>%level\t%d{yyyy-MM-dd HH:mm:ss} %c: %m%n</pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            <SizeBasedTriggeringPolicy size="32 MB" />
            <OnStartupTriggeringPolicy/>
        </Policies>
    </RollingFile>

Примечание OnStartupTriggeringPolicy и % i в filePattern. Таким образом, Log4j создаст новый файл журнала с индексом при каждом запуске приложения.

Ответ 4

Сверху моей головы я не думаю, что это возможно с помощью Log4j. Возможно, когда вы закроете приложение, вы можете переименовать файл .log, так что при следующем запуске будет создан новый файл журнала.