Пожалуйста, извините за длинный пост. Я новичок ie в реализации журналирования и пытаюсь прочитать файл журнала, который перезаписывается при каждом запуске сборки. Файл журнала содержит сведения о некоторых шагах выполнения рабочего процесса.
Конфигурации для файла log4j2. xml: -
<appenders>
<File name="InfoLog" fileName="build/var/debug.log" bufferedIO="true" immediateFlush="false" append="false">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS z}{UTC} ~ [%t] ~ %-5level ~ %logger{1} ~ %msg%n"/>
</File>
</appenders>
<loggers>
<Root level="Debug">
<AppenderRef ref="InfoLog"/>
</Root>
</loggers>
Пример фрагмент кода для моей реализации логгера: -
Примечание → У меня есть вызовы API для других сервисов и мне тоже нужны эти журналы в моем файле, поэтому я использовал библиотеку mu.KLogging в качестве сделал это супер легко. Я не смог получить логи от звонков на другие API, используя библиотеки java .util.logging или org. apache .log4j.
import mu.KLogging
interface TestsLogger {
companion object {
val logger = KLogging().logger(" WORKFLOW STEPS ")
}
}
//In some class
logger.info { "Running ${(workflowMap.currentStep).toUpperCase()}" }
logger.error { workflowExecutionException }
Теперь, когда я при попытке чтения файла debug.log (через несколько секунд после выполнения всех шагов) по какой-то причине не все журналы читаются из файла.
TimeUnit.MILLISECONDS.sleep(5_000)
var lines: List<String> = Files.readAllLines(File("build/var/debug.log").toPath())
Окунувшись глубоко в причину такого поведения, я обнаружил, что, когда он пытается прочитать файл debug.log, в тот момент в файле журнала не было всех журналов. По какой-то причине последние несколько строк журналов добавляются в файл в тот момент, когда моя сборка завершается. Хотя , казни уже были выполнены, для которых мне нужна информация из журналов.
К вашему сведению -> Я использую Gradle Build в Intellij
Я пытаюсь понять, почему это странное поведение? И как я могу решить это так, чтобы журналы генерировались правильно, и мой файл считывал все журналы, созданные до этого момента?