2017-03-03 31 views
1

我正在編寫一個使用Jersey作爲容器的Tomcat的RESTful Web應用程序。我正在使用Java日誌API(Jersey和Tomcat也使用它)從我的應用程序生成日誌。但是顯示由Jersey和Tomcat生成的日誌的控制檯記錄器僅顯示從我的應用程序到INFO級別的日誌。我已經在WebContent/META-INF/classes文件夾中放置了一個定製logging.properties文件,其中ConsoleHandler.level=ALL。但它仍然沒有顯示來自我的應用程序的任何CONFIG或FINE級別的日誌記錄。使用自定義logging.properties和運動衫

如何找出哪個logging.properties文件有效?在jre/lib或tomcat/conf或其他地方?更重要的是,如何讓我的應用程序使用自定義logging.properties

+0

我發現'jre/lib/logging.properties'是被使用的。它的任何更改都會生效。但我想讓我的應用特定的'logging.properties'文件,而不是全球的。 – Raihan

+0

你在Eclipse或其他IDE中使用tomcat嗎? – gaurav5430

+0

您應該在src/main/resources中創建logging.properties文件,以便它在目標 - >類中生成 – gaurav5430

回答

0

這是我如何做它在Eclipse中運行Tomcat工作:

  1. 找出路到tomcat運行在Eclipse:Where can I view Tomcat log files in Eclipse?

  2. 創建logging.properties文件存在。在我的情況下,道路是.../EclipseWorkSpace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf (您可以從您的實際tomcat的conf文件夾中複製此記錄文件。)

  3. 在您的應用程序,在src/main/resources創建logging.properties文件。

爲servlet-例子的Web應用程序 例logging.properties被放置在WEB-INF /類網絡內: (當i在WEB-INF/classes直接創建爲Tomcat文檔中提到的沒有工作應用: 從https://tomcat.apache.org/tomcat-9.0-doc/logging.html

  • 設置你的Tomcat在上述文件記錄參數,其中覆蓋默認從/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conflogging.properties文件從你的應用程序中:

    handlers= java.util.logging.ConsoleHandler 
    
    .level= FINE 
    
    java.util.logging.ConsoleHandler.level = FINE 
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 
    
  • 這將記錄從Tomcat '精' 級別的日誌。

  • 在你的球衣應用中設置日誌記錄屬性:

    register(new LoggingFeature(Logger.getLogger(MyApplication.class.getName()), Level.INFO, LoggingFeature.Verbosity.PAYLOAD_TEXT, 2048)); 
    

    這隻會從球衣登錄 'INFO' 的日誌。

  • 所以,4和5實際上意味着Tomcat的將記錄所有FINE日誌,但澤西只會記錄信息的日誌,所以在你的日誌文件(catalina.out的),你只會看到新澤西信息日誌,但FINE記錄了Tomcat中的其他所有內容。

    相關問題