java - 将自定义 logging.properties 与 Jersey 一起使用

标签 java tomcat logging jersey

我正在使用以 Tomcat 作为容器的 Jersey 编写一个 RESTful 网络应用程序。我正在使用 Java 日志记录 API(Jersey 和 Tomcat 也使用它)从我的应用程序生成日志。但是显示 Jersey 和 Tomcat 生成的日志的控制台记录器只显示来 self 的应用程序的日志,直到 INFO 级别。我在 WebContent/META-INF/classes< 中放置了一个带有 ConsoleHandler.level=ALL 的自定义 logging.properties 文件文件夹。但它仍然没有显示来 self 的应用程序的任何 CONFIG 或 FINE 级别的日志记录。

如何找出哪个 logging.properties 文件有效? jre/lib 或 tomcat/conf 或其他地方的那个?更重要的是,如何让我的应用程序使用自定义 logging.properties

最佳答案

这就是我如何让它在 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. 在您的应用程序中,在 src/main/resources 中创建一个 logging.properties 文件。 (当我直接在 WEB-INF/classes 中创建时不起作用,如 tomcat 文档中所述:

Example logging.properties for the servlet-examples web application to be placed in WEB-INF/classes inside the web application: from https://tomcat.apache.org/tomcat-9.0-doc/logging.html )

  1. 在上述文件中设置您的 tomcat 日志记录参数,它会覆盖 /.metadata/.plugins/org.eclipse.wst.server 中的默认 logging.properties 文件。 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
    

这将从 Tomcat 记录“精细”级别的日志。

  1. 在您的 Jersey 应用中设置日志记录属性:

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

    这只会记录来自 Jersey 的“INFO”日志。

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

关于java - 将自定义 logging.properties 与 Jersey 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571025/

相关文章:

java - 无法将 c3p0 日志记录转至文件

java - Cassandra 类型错误

Java:根据某个字段获取大量对象List的最高效组合

java - Liferay 公告 portlet Hook

java - SQLite 及其驱动程序

java - JAX-WS 部署

java - 使用客户端凭据从 Tomcat 连接到 SQL Server

java - Tomcat无法连接8005端口

Git:svn log --stop-on-copy 等效

hadoop - 在Hive UDF中记录消息