Jersey 2.23:无法从web.xml启用LoggingFeature

时间:2017-07-16 07:15:16

标签: java jersey-2.0

我正在尝试在Jersey上启用HTTP请求/响应日志记录,在Tomcat上运行。我的应用程序是基于web.xml的,并且在ResourceConfig类上没有应用程序。

这是我试图从我的web.xml启用LoggingFeature:

<init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.logging.LoggingFeature</param-value>
    </init-param>

<init-param>
    <param-name>org.glassfish.jersey.logging.LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL</param-name>
    <param-value>java.util.logging.Level.FINEST</param-value>
</init-param>

<init-param>
    <param-name>org.glassfish.jersey.logging.LoggingFeature.LOGGING_FEATURE_LOGGER_NAME</param-name>
    <param-value>MyLoggerName</param-value>
</init-param>

但我在catalina.out或localhost_access.log中看不到任何泽西州日志

1 个答案:

答案 0 :(得分:-1)

这就是我在Eclipse中运行Tomcat的方法:

  1. 找出在Eclipse中运行的tomcat的路径: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. 在您的应用程序中,在logging.properties中创建一个src/main/resources文件。 (当我在tomcat文档中提到的WEB-INF/classes中直接创建时没有工作:

  4.   

    servlet-examples Web应用程序的logging.properties示例   放在Web应用程序内的WEB-INF / classes中:   来自https://tomcat.apache.org/tomcat-9.0-doc/logging.html   )

    1. 在上面的文件中设置tomcat日志记录参数,从您应用内部覆盖logging.properties的默认/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf文件:

      handlers= java.util.logging.ConsoleHandler
      
      .level= FINE
      
      java.util.logging.ConsoleHandler.level = FINE
      java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
      
    2. 这将记录&#39; FINE&#39;来自Tomcat的级别日志。

      1. 在您的球衣应用中设置日志属性:

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

        <init-param>
                <param-name>jersey.config.server.provider.classnames</param-name>
                <param-value>org.glassfish.jersey.logging.LoggingFeature</param-value>
            </init-param>
        

        这只会记录信息&#39;来自球衣的原木。

        因此,4和5实际上意味着Tomcat会记录所有FINE日志,但Jersey只会记录INFO日志,因此在您的日志文件(catalina.out)中,您只能看到来自Jersey的INFO日志,但是来自FINE日志来自Tomcat中的其他一切。