2017-03-03 40 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中的其他所有内容。

    相关问题