簡體   English   中英

我應該在web應用程序(maven項目)中將java.util.logging的logging.properties文件放在哪里?

[英]Where should I put logging.properties file for java.util.logging in web application (maven project)?

我想記錄到文件並將其設置在屬性文件中,因為默認的logger.info()輸出進入控制台,而在Web應用程序中,我的情況下沒有控制台。

正如Navi所說......它在src/main/resources

只是為了澄清這個主題...... logging.properties 必須放在WEB-INF/classes目錄中。 如果您使用某種框架來組織項目,您必須找到放置文件的位置以便保留在WEB-INF/classes如果您使用maven來組織Web應用程序,您必須知道所有的謊言在src/main/resources轉到WEB-INF/classes.

你應該放入src / main / resources

這是我在嘗試確定我的logging.properties文件在測試時需要去哪里時找到的第一個地方。

TL; DRsrc/test/resources

部署到Tomcat

當作為Web應用程序運行時,正如此評論所示,我不需要將logging.properties文件部署到src/main/resources (盡管這可能已經修復了我的直接問題)。 我的容器已經有一個。 對於Tomcat,該位置是$CATALINA_HOME/conf/logging.properties 如果您從Eclipse中運行Tomcat,您可以設置在啟動配置,如解釋在這里

這個答案討論了為每個應用程序設置不同的日志記錄屬性,這是將文件放在src/main/resources中的內容。

這部分是海報問題的答案。 其余的是我類似但不同的問題的答案。

調試測試

我遇到的實際問題是我的java.util.logging停止顯示類名和方法名后我將SLF4J使用jar添加到我的項目並嘗試調試我的單元測試。 我必須將org.slf4j:slf4j-jdk14添加到我提供的范圍內的POM中,以便我的測試可以運行。 但后來他們沒有類和方法名稱。 在添加一些Surefire配置后,配置logging.properties文件以匹配Tomcat,但修復了不同的處理程序

<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添加一些配置以實現相同的目的。 Tomcat外部的logging.properties不使用任何Catalina jar,因此我將其切換為使用不同的處理程序。

如果您使用的是Tomcat,那么您應該登錄到$CATALINA_HOME/logs/myapp/myapp.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM