我使用maven设置了一个独立的灰熊/泽西服务器并引用了以下依赖项
<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实现了一个客户端来获取资源,操作它并将其POST回来。到目前为止一切都很好。
现在我想使用curl发布一些不起作用的东西。但现在问题是:
问题是我无法让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
这可能是一个非常基本的问题,但我厌倦了反复试验: - )
答案 0 :(得分:9)
我只需要解决同样的问题。这是我的初始化代码,它说服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
答案 1 :(得分:1)
Grizzly使用JDK日志记录API。 不确定为什么它对你不起作用,请仔细检查java.util.logging.config.file属性是否正确解析。
答案 2 :(得分:0)
检查您是否可以在应用程序中记录级别为 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