我一直在使用eclipse(4.4)和GWT(2.6.0)开发我的Web应用程序。我有一个外部jar包含纯java中的一些功能,以及一个在服务器部分(services / servlets)中使用这个jar的GWT项目。 GWT项目是一个纯日食项目,我稍后将其转换为maven项目。 jar是用maven构建的,并填充到src / main / webapp / WEB-INF / lib /目录,它就像魅力一样。
简短版本: jar或servlet中生成的java.util.logging消息在开发过程中被忽略,而不是记录到eclipse控制台。
长版: 使用java.util.logging实现jar和GWT servlet中消息的日志记录。问题是在开发期间我只能看到来自GWT编译过程的一些消息和来自java.util.logging工具的库解析消息(例如,其中有一个DEBUG,在java中不存在) .util.logging),但没有来自我的实际代码或jar。当我在eclipse的运行配置中将以下内容添加到VM参数时,我能够从我的代码中看到一些信息消息,但是没有FINE,FINER和FINEST级别,也没有来自jar的所有信息:
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -D{classref}.LEVEL=DEBUG
我还尝试将以下logging.properties文件放在不同的位置,例如src / main / resources,src / main / webapp / WEB-INF / lib /,src / main / webapp / WEB-INF / classes / ,但到目前为止没有上述工作。
handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level= ALL
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
我还没有外部部署应用程序,所以我不知道它在e中的表现如何。 G。一个Tomcat环境。最令人沮丧的是,我已经在网上搜索了几个小时,但是没有找到任何远程接近我在当前IDE配置中启用日志记录和控制日志级别的目标。
来自GWT的客户端日志记录就像魅力一样。
我非常感谢有关此主题的任何帮助!在此先感谢: - )
编辑:基于Joakim Erdfelt和Thomas Broyer的评论,我做了一个实验,用于排列几个不同的Jetty日志参数,我通过eclipse运行配置中的-D参数传递给VM(我发现它们{{3} })。以下是结果。主要目标是解锁所有级别的日志记录。
没有Jetty记录参数 - >工作水平:严重,警告,信息。 完整的VM args:
-Xmx2048m -XstartOnFirstThread
java.util.logging.config.file(该文件位于/src/main/resources/logging.properties,尝试过src / main / resources / logging.properties,/ src / main / resources / logging .properties,logging.properties) - >没有水平工作。
-Xmx2048m -XstartOnFirstThread -Djava.util.logging.config.file = src / main / resources / logging.properties
-D{classref}.LEVEL=ALL
或-D{classref}.LEVEL=FINEST
- >工作水平:严重,警告,信息。
-Xmx2048m -XstartOnFirstThread -D {classref} .LEVEL = ALL
这也没有任何改变。可见级别为:严重,警告,信息。 完整的VM args:
-Xmx2048m -XstartOnFirstThread -D {classref} .LEVEL = ALL -Dorg.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.StrErrLog
所以伙计们,这个问题仍然存在。显然日志记录工作,但我无法正确设置级别。我一定错过了一些明显的东西......
答案 0 :(得分:0)
显然,不可能告诉GWT的嵌入式Jetty在我使用的配置中使用java.util.logging框架。我发现GWT团队的决定不要让这个有点奇怪,因为(仿真)java.util.logging框架用于客户端日志记录。因此,在应用程序中不混合使用两种不同的登录方式并且对servlet也使用java.util.logging是很自然的。很可惜。感谢Joakim指出这一点。