Что имеет приоритет: logback.xml или logback-test.xml? - PullRequest
0 голосов
/ 28 мая 2018

Я очень новичок в выходе из системы.Если мой весенний загрузочный проект содержит оба файла -

  • logback.xml: присутствует в * src / main / resources /
  • logback-test.xml: присутствует в * src / test / resources/

Какой из них будет загружен?logback.xml или logback-test.xml?

Я читал документацию по logback и там написано, что сначала он ищет logback-test.xml, а затем logback.xml.

Значит, файл logback-test.xml будет иметь приоритет над logback.xml, если мы развернем приложение?

Спасибо!

Saurabh

1 Ответ

0 голосов
/ 29 мая 2018

Из документов :

Давайте начнем с обсуждения шагов инициализации, которые следует выполнить после входа в систему, чтобы попытаться настроить себя:

  1. Logback пытается найти файл с именем logback-test.xml в пути к классам.

  2. Если такой файл не найден, logback пытается найти файл с именем logback.groovy в пути к классам.

  3. Если такой файл не найден, он проверяет наличие файла logback.xml в пути к классам.

  4. Если такой файл не найденсредство загрузки поставщика услуг (представленное в JDK 1.6) используется для разрешения реализации интерфейса com.qos.logback.classic.spi.Configurator путем поиска файла META-INF \ services \ ch.qos.logback.classic.spi.Configurator в пути к классам.В его содержимом должно быть указано полное имя класса требуемой реализации Конфигуратора.

  5. Если ничего из вышеперечисленного не выполнено, logback автоматически конфигурируется с использованием BasicConfigurator, что приводит к тому, что выходные данные журналов будут направлены наконсоль.

Последний шаг - это последняя попытка предоставить стандартную (но очень базовую) функцию ведения журнала при отсутствии файла конфигурации.

Итак, ответ на этот вопрос ...

Что имеет приоритет: logback.xml или logback-test.xml?

... is Logback-test.xml .

Однако этот вопрос ...

Так как файл logback-test.xml будет иметь приоритет над logback.xml, если мы развернем приложение?

... немного усложняет дело.Если вы развернете и logback-test.xml, и logback.xml, тогда logback-test.xml будет иметь приоритет, но развертывание logback-test.xml не распространено.Действительно, с учетом местоположений, указанных в вашем вопросе, logback-test.xml по умолчанию развертываться не будет, поскольку находится в дереве тестов (src/test/resources).

Опять же, из документов :

Если вы используете Maven и поместите logback-test.xml в папку src / test / resourcesMaven гарантирует, что он не будет включен в произведенный артефакт.Таким образом, вы можете использовать другой файл конфигурации, а именно logback-test.xml во время тестирования, и другой файл, а именно, logback.xml, в производстве.

Итак, в итоге;по умолчанию logback-test.xml не будет развернут, поэтому logback.xml будет использоваться в развернутой системе, но logback-test.xml будет иметь приоритет над logback.xml при запуске тестовых случаев.

...