2015-06-26 4 views
0

Я использую Log4j2 и Spring Boot (1.2.4). После документации (и log4j2-file.xml, как, например, в весенне-boot.jar), вот моя конфигурацияSpring Boot - Log4j2 - создано 2 файла

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration> 
    <Appenders> 
    <File name="Logs" fileName="${sys:LOG_FILE}" append="false"> 
    ... 

<Logger level="warn"> 
     <AppenderRef ref="Logs"/> 
</Logger> 

В application.properties файле: logging.file:/вар/TMP/журналы/mylog.log

в результате генерируются 2 файла:

  • один файл с именем $ {сист: LOG_FILE} который остается пустым
  • Один файл/вар/TMP/журналы/MyLog. L OG правильно заполнены

Я не понимаю, почему файл $ {SYS: LOG_FILE} генерируется.

Любая идея? Большое спасибо.

ответ

0

Я использую версию 1.2.5.RELEASE Spring Boot (включая родителя стартера), и я вижу ту же проблему.

Мое предположение заключается в том, что Log4j2 пытается инициализировать файл до того, как Spring Boot загрузила конфигурацию, в результате получился пустой файл с именем $ {sys: LOG_FILE} или $ {sys (в Windows).

Один из способов избежать этого - просто установить системное свойство (-DLOG_FILE =/var/tmp/logs/mylog.log) и удалить logger.file из вашей конфигурации.

+0

Спасибо за ваш ответ. Я спустил log4j2, чтобы использовать logback, который хорошо интегрирован в весеннюю загрузку. –

0

logging.file используется только для регистратора по умолчанию, настроенного только пружиной.
В этом случае ваш LOG_FILE должен быть передан в системную переменную перед выполнением jar -dLOG_FILE =/location/of/log.file

Смежные вопросы