【问题标题】:Grizzly Standalone LoggingGrizzly 独立日志记录
【发布时间】:2014-02-15 06:34:06
【问题描述】:

我已经使用 maven 设置了一个独立的 grizzly/jersey 服务器并引用了以下依赖项

<dependency>
  <groupId>org.glassfish.grizzly</groupId>
  <artifactId>grizzly-http-server</artifactId>
  <version>2.3.10</version>
</dependency>
<dependency>
  <groupId>org.glassfish.jersey.containers</groupId>
  <artifactId>jersey-container-grizzly2-http</artifactId>
  <version>2.5.1</version>
</dependency>
<dependency>
  <groupId>org.glassfish.jersey.core</groupId>
  <artifactId>jersey-server</artifactId>
  <version>2.5.1</version>
</dependency>

我已经使用 jersey 客户端 api 实现了一个客户端来获取资源,对其进行操作并将其返回。到目前为止一切都很好。

现在我想使用 curl 发布一些内容,但这是行不通的。但现在的问题是:

问题是我无法让 Grizzly 将某些内容记录到控制台并且还没有找到任何日志文件。 grizzly 是使用 log4j 还是 logging-api?谁能给我提供 logging.properties 或类似的东西?

我正在通过 Eclipse 中的运行配置启动服务器

-Djava.util.logging.config.file=${project_loc}\src\main\resources\logging.properties

作为论据。参考文件存在并包含

.handlers= java.util.logging.ConsoleHandler
.level= ALL
java.util.logging.FileHandler.pattern = logs/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
org.glassfish.level = FINEST

这可能是一个非常基本的问题,但我厌倦了反复试验:-)

【问题讨论】:

    标签: java eclipse maven logging grizzly


    【解决方案1】:

    Grizzly 使用 JDK 日志记录 API。 不确定为什么它对您不起作用,请仔细检查 java.util.logging.config.file 属性是否得到正确解析。

    【讨论】:

    • 你的意思是我应该检查 ${project_loc} 变量是否已解决,或者我该如何完成“双重检查”?
    • 尝试使用JDK Logger在你的项目中记录一些东西,看看它是否有效。
    • 所以日志记录有效。灰熊好像话不多。所以我会尝试使用球衣记录jersey.java.net/documentation/latest/user-guide.html#tracing。但是到目前为止,谢谢。
    【解决方案2】:

    检查您是否可以在应用程序中记录级别为 FINE 的内容。

    Logger LOG = Logger.getLogger(MyResource.class.getName());
    LOG.log(Level.FINE, "a message")
    

    Jersey 正在使用 JDK 日志记录,要查看其调试输出(例如在 grizzly 控制台中),您必须正确配置日志记录。这个配置文件对我有用:

    handlers=java.util.logging.ConsoleHandler
    .level=FINE
    java.util.logging.ConsoleHandler.level=ALL
    

    【讨论】:

      【解决方案3】:

      我刚刚不得不解决同样的问题。这是我的初始化代码,可以让 Grizzly HTTP 服务器显示错误:http://source.apidesign.org/hg/bck2brwsr/rev/18ae4fbcfb87

      Logger l = Logger.getLogger("org.glassfish.grizzly.http.server.HttpHandler");
      l.setLevel(Level.FINE);
      l.setUseParentHandlers(false);
      ConsoleHandler ch = new ConsoleHandler();
      ch.setLevel(Level.ALL);
      l.addHandler(ch);
      

      我正在使用 Grizzly 2.3.3

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-26
        • 1970-01-01
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多