Где я должен поместить файл logging.properties для java.util.logging в веб-приложение (проект maven)? - PullRequest
9 голосов
/ 17 января 2011

Я хочу войти в файл и установить его в файле свойств, потому что вывод logger.info () по умолчанию идет на консоль, а в веб-приложении в моем случае консоли нет.

Ответы [ 4 ]

17 голосов
/ 16 января 2013

Как говорит Нави ... это входит в src/main/resources

Просто чтобы прояснить эту тему ... logging.properties должен перейти в каталог WEB-INF/classes. Если вы используете какую-то платформу для организации своего проекта, вы должны выяснить, где разместить файл, чтобы остаться в WEB-INF/classes Если вы используете maven для организации веб-приложения, вы должны знать, что все, что находится в src/main/resources, переходит к WEB-INF/classes.

9 голосов
/ 17 января 2011

вы должны поместить в src / main / resources

0 голосов
/ 13 октября 2018

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

TL; DR : src/test/resources

Развертывание в Tomcat

При запуске в качестве веб-приложения, как указывает этот комментарий , мне не нужно развертывать файл logging.properties в src/main/resources (хотя это, вероятно, решило бы мою непосредственную проблему). Мой контейнер уже есть. Для Tomcat это местоположение $CATALINA_HOME/conf/logging.properties. Если вы запускаете Tomcat из Eclipse, вы можете установить это в конфигурации запуска, как объяснено здесь .

В этом ответе говорится о настройке различных свойств ведения журнала для приложения, что и делает помещение файла в src/main/resources.

Этот раздел является ответом на вопрос автора. В остальном это ответ на мою похожую, но другую проблему.

Отладочные тесты

Реальная проблема, с которой я столкнулся, заключалась в том, что мой java.util.logging перестал отображать имя класса и имя метода после того, как я добавил jar-файл, использующий SLF4J, в свой проект и пытался отлаживать свои модульные тесты. Мне пришлось добавить org.slf4j:slf4j-jdk14 к моему POM в предоставленном объеме, чтобы мои тесты вообще запускались. Но тогда у них не было имен классов и методов. Конфигурирование файла logging.properties для соответствия файлу для Tomcat, но с другими обработчиками исправлено, что после того, как я добавил конфигурацию Surefire :

<plugins>
  <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
       <systemProperties>
         <property> 
           <name>java.util.logging.config.file</name>
           <value>src/test/resources/logging.properties</value>
         </property>
         <property>
           <name>java.util.logging.manager</name>
           <value>org.apache.juli.ClassLoaderLogManager</value>
         </property>
       </systemProperties>
    </configuration>
  </plugin>
</plugins>

И мои журналы снова показывали всю информацию даже при запуске тестов из Maven.

Резюме

Если вы хотите настроить ведение журнала вашего обычного приложения, тогда src/main/resources может быть правильным местом. Но я хотел изменить протоколирование моих тестов, поэтому вместо него я использовал src/test/resources. Поскольку конфигурация запуска Tomcat не работает при типовых модульных тестах, мне пришлось добавить некоторую конфигурацию в Surefire, чтобы служить той же цели. В logging.properties вне Tomcat не используются никакие jar-файлы Catalina, поэтому я переключил его на использование других обработчиков.

0 голосов
/ 17 января 2011

Если вы используете Tomcat, вы должны войти в систему $CATALINA_HOME/logs/myapp/myapp.log.

...