2015-06-08 3 views
3

Я записываю файлы журнала (log4j) под каталогом /logs/MyApp на моем Linux-сервере и его отлично работает. Приложение (EAR) построено с использованием Jenkins, и я пишу тесты для Junit. Проблема заключается в том, что местоположение файла log4j не будет указывать на файловую систему jenkins server и относительно моего Linux-сервера.Конфигурация log4j для jenkins и производственного сервера

Log4j.appender.App.File = /logs/MyApp/AppLogs.log 

Это приводит к ошибкам, когда тестовые примеры выполняются от дженкинсов, поскольку местоположение файла log4j отсутствует.

log4j: ERROR setFile (null, true) call failed. java.io.FileNotFoundException: /logs/MyApp/Applogs.log (Нет такого файла или каталога )

Как я могу настроить log4j работать с Дженкинс без изменения текущих настроек, которые уже настройки для моей производственной среде ,

ответ

2

Есть несколько способов исправить эту проблему:

  1. Создать директорию в вашем мастере Дженкинс/рабах. Не является устойчивым, если есть новый раб.
  2. Измените конфигурацию log4j так, чтобы у вас были разные конфигурации log4j - один для вашей продукции, один для локального тестирования и один для Jenkins. (Это то, что работает в платформе Play, и для разных профилей вы получили разные файлы журналов)
  3. Вы можете передать это как параметр для задания Jenkins (или установить его в env var) и использовать его в Jenkins.
  4. Не используйте абсолютный путь в конфигурации log4j, если это возможно.
+0

(1) Я не могу изменить структуру каталогов на моем сервере jenkins (2) Я думаю, вы говорите о создании отдельных профилей maven для Jenkins и prod env. Я попробую настроить различные профили и посмотреть, что произойдет Спасибо – user4462583

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