2016-12-15 6 views
0

Я хочу, чтобы мои файлы журналов, созданные log4j2, имели шаблон даты в имени своего файла, включая текущий активный файл. То есть, если сегодняшняя дата - 2016-12-15, я хочу, чтобы текущий файл журнала был lager-2016-12-15.log. Когда изменяется дата, я хочу создать новый файл с именем lager-2016-12-16.log.Log4j2 ежедневные файлы журнала

С RollingFileAppender Я не могу получить текущий активный файл журнала, чтобы иметь шаблон даты в имени файла. Мой Log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Properties> 
     <Property name="layoutPattern">%d{ISO8601} [%t] %-5p [%X{REQUEST_ID}] [%X{CLIENT_ID}] [%X{USER_ID}] %c- %m%n</Property> 
     <Property name="logDir">${sys:catalina.home}/logs/</Property> 
     <Property name="fileName">${logDir}lager-${date:yyyy-MM-dd-HHmm}.log</Property> 
     <Property name="filePattern">${logDir}lager-%d{yyyy-MM-dd-HHmm}.log</Property> 
    </Properties> 
    <Appenders> 
     <RollingFile name="LAGER" append="true" 
       fileName="${fileName}" 
       filePattern="${filePattern}"> 
      <PatternLayout pattern="${layoutPattern}" charset="UTF-8"/> 
      <Policies> 
       <TimeBasedTriggeringPolicy interval="1" modulate="true"/> 
      </Policies> 
     </RollingFile> 
    </Appenders> 
    <loggers> 
     <Logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost]" level="WARN" additivity="false"> 
      <AppenderRef ref="LAGER" /> 
      <AppenderRef ref="CONSOLE"/> 
     </Logger> 
     <Root level="INFO"> 
      <AppenderRef ref="LAGER"/> 
      <AppenderRef ref="CONSOLE"/> 
     </Root> 
    </loggers> 
</Configuration> 

С этим конфиг копирование, когда он переворачивается перепутались. Удаление шаблона даты из свойства fileName исправляет это, но текущий файл не имеет даты в его имени.

Я запускаю это на tomee 7.0.1.

ответ

1

Возможно, для этого существует выдающийся запрос функции. Это соответствует вашим требованиям? https://issues.apache.org/jira/browse/LOG4J2-1101

Если да, просьба прокомментировать этот билет JIRA. Если вы в состоянии внести исправление (в идеале с модульным тестом), скорее всего, он будет быстро решен.