переменная даты не разрешается в log4j2.xml при использовании log4j 2.0 в автономном приложении Java под OSX

Я использую log4j 2 в своем автономном приложении Java. Однако я борюсь с переменной даты в конфигурации log4j2.xml. Это не решается.

Вот мой файл конфигурации log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
  <appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="File" fileName="logs/Server-${date}.log">
      <PatternLayout pattern="%d [%t] %-5level %logger{36} - %msg%n"/>       
    </File>
  </appenders>
  <loggers>
    <root level="all">
      <appender-ref ref="Console"/>
      <appender-ref ref="File"/>
    </root>
  </loggers>
</configuration>

Однако создается файл журнала: Server-${date}.log

Мое приложение работает под OSX, не уверен, что это причина.

Спасибо, парни.


person Arthur    schedule 01.05.2013    source источник


Ответы (1)


Из главы Подстановка свойств на странице конфигурации Log4j2.

date: вставляет текущую дату и/или время в указанном формате.

Так что вам просто нужно добавить формат даты к вашему свойству.

... <File name="File" fileName="logs/Server-${date:yyyy-MM-dd}.log"> ...

Имя вашего файла будет Server-2014-05-06.log.

Вы можете посетить класс SimpleDateFormat из Java API, чтобы увидеть все возможности форматирования.

person LucasMoody    schedule 06.05.2014