Я пытаюсь, чтобы log4j2 записывал файлы журнала с именами YYYYmmdd-HHMMSS.log, но не начинаю писать файл, пока у нас не будет хорошего системного времени (> 1986 год). У меня есть приложение, работающее в системе, которое загружается и требует времени, чтобы получить правильное время; пока это не произойдет, система думает, что это было в 1970 году, и на самом деле нет смысла писать файл журнала с заданной датой.
Используя пользовательский фильтр, я могу заставить FileAppender не записывать какие-либо события, пока системное время установлено. Я могу заставить FileAppender не открывать файл, пока пользовательский фильтр не передаст первое событие (createOnDemand = "true"). Используя Log4J2 - назначая имя файла appender во время выполнения , я могу получить файл с именем YYYYmmdd-HHMMSS.log, но файл YYYYmmdd-HHMMSS.log в конфигурации XML, похоже, оценивается при инициализации log4j2 ( не при открытии файла), поэтому мое имя файла все еще 19700101-000000.log.
Есть ли способ отложить оценку имени для log4j2 FileAppender до тех пор, пока файл фактически не будет открыт? В качестве альтернативы, есть хитрый способ использовать RollingFileAppender для этого? (Я не вижу способа изменить имя файла текущего файла, только старые файлы)
Я мог бы сделать пользовательский appender (FileAppender / FileManager просто не такой длинный), но я пытаясь избежать этого, если это возможно.