我一直在使用eclipse(4.4)和GWT(2.6.0)开发Web应用程序。我有一个包含纯Java中某些功能的外部jar,以及一个在服务器部分(服务/ servlet)中使用此jar的GWT项目。GWT项目是一个纯蚀项目,后来我将其转换为maven项目。这个jar是用maven构建的,并填充到src / main / webapp / WEB-INF / lib /目录中,在这里它像一个超级按钮一样工作。
简短版:在开发过程中将忽略jar或servlet中生成的java.util.logging消息,而不是将它们记录到eclipse控制台中。
长版:在jar和GWT servlet中记录消息是使用java.util.logging实现的。问题是,在开发过程中,我只能看到GWT编译过程中的一些消息以及来自java.util.logging工具的库解析消息(例如,其中包含DEBUG,而Java中不存在DEBUG) (.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
我尚未在外部部署该应用程序,因此我不知道它在Tomcat环境中的行为。最令人沮丧的是,我已经在网上搜索了几个小时,但是还没有发现任何东西可以接近在我当前的IDE配置中启用日志记录和控制日志级别的目标。
来自GWT本身的客户端日志记录就像是一种魅力。
我将非常感谢您对此主题的任何帮助!提前致谢 :-)
编辑:基于Joakim Erdfelt和Thomas Broyer的评论,我进行了一个实验,对一些不同的Jetty日志记录参数进行了置换,这些参数是通过Eclipse运行配置中的-D参数传递给VM的(我在这里找到了它们)。
以下是结果。主要目标是解锁所有级别的日志记录。
没有Jetty日志参数->工作级别:严重,警告,信息。完整的VM参数:
-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参数:
-Xmx2048m -XstartOnFirstThread -D {classref} .LEVEL = ALL -Dorg.eclipse.jetty.util.log.class = org.eclipse.jetty.util.log.StrErrLog
伙计们,这个问题仍然悬而未决。显然,日志记录有效,但是我无法正确设置级别。我一定想念一些明显的东西...
显然,不可能告诉嵌入式GWT Jetty在我使用的配置中使用java.util.logging框架。我发现GWT团队的决定至少要说得有点奇怪,因为java.util.logging框架(的模拟)用于客户端日志记录。因此,自然不会混合两种不同的登录应用程序的方式,并且也将java.util.logging用于servlet。很可惜。感谢Joakim指出这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句