无法使java.util.logging与通过JNLP启动的应用程序一起使用

时间:2012-03-23 16:17:42

标签: java jnlp java.util.logging

出于调试目的,我希望我的应用程序能够登录到java.util.logging.SocketHandler。这是我的配置文件:

handlers = java.util.logging.SocketHandler
.level = WARNING
java.util.logging.SocketHandler.level = ALL
java.util.logging.SocketHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SocketHandler.host = localhost
java.util.logging.SocketHandler.port = 10101
com.mycompany.level = ALL

此日志记录配置文件与应用程序的jar捆绑在一起,并从main读取。当我独立启动应用程序时,日志记录按预期工作。我看到日志语句流式传输到localhost:10101。但是,当我通过JNLP启动应用程序时,看不到记录。这是我的JNLP配置文件:

<jnlp spec="1.0+" codebase="http://mycompany.com" href="myapp.jnlp">
  <information>
    <title>My App</title>
    <vendor>My Company</vendor>
    <offline-allowed/>
  </information>
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.6+"/>
    <jar href="myapp.jar"/>
  </resources>
  <application-desc main-class="com.mycompany.Main"/>
</jnlp>

我没有找到任何信息,也没有任何理由说明为什么这不起作用。有人可以帮忙做这个工作吗?或建议另一种(可能更好?)方式从通过JNLP启动的应用程序捕获日志记录。

1 个答案:

答案 0 :(得分:2)

好吧,我明白了。事实证明我的问题是我如何将日志属性文件作为资源加载。我正在使用:

ClassLoader.getSystemResourceAsStream("/com/mycompany/logging.properties");

但我应该使用:

Main.class.getResourceAsStream("/com/mycompany/logging.properties");