Я создаю приложение, которое обрабатывает файлы журналов. Для этого я прочитал конфигурацию файла logback.xml, выберем имя пользователя по имени и извлеку необходимой информации о файле в хвост и формат сообщений в нем.Поиск лог-файла с помощью приложений-реестров
В настоящее время я могу только хвост файлов журнала, у которых есть заданное имя файла, и я пытаюсь перечеркнуть файлы, у которых есть узорное имя файла. Но чтобы избежать сложной проверки всех возможных шаблонов, я думал об извлечении значения файла из самого класса logger. После исследования я обнаружил, что класс RollingPolicyBase имеет метод getActiveFileName(), который, как я подозреваю, имеет то, что мне нужно (имя файла журнала в момент вызова метода), но по какой-то причине я не могу даже найдите регистратор для его имени. Кто-то раньше пробовал что-то подобное или знает, возможно ли это сделать?
Мой текущий Logback (важные биты):
<appender name="DateRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/jwsgateway.%d{yyyyMMddHH}.log.zip</fileNamePattern>
<maxHistory>1500</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{dd/MM/yy HH:mm:ss.SSS} [%thread] %-5level %logger{0} - %m%n </pattern>
</encoder>
Мой текущий код:
private static ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(MyClass.class);
RollingFileAppender appender=(RollingFileAppender)logger.getAppender("DateRollingFileAppender");
filePath=appender.getRollingPolicy().getActiveFileName();
переменные "Appender" заканчивается нулем. Какие-либо предложения?
Это сделал это. Он работает по назначению. Большое спасибо! – KatVolkov