Java 找不到Google云日志处理程序
当我将记录器指向google clouds日志处理程序时,我的google app engine本地开发服务器返回一个classdef not found异常,如何修复此问题Java 找不到Google云日志处理程序,java,eclipse,google-app-engine,java.util.logging,Java,Eclipse,Google App Engine,Java.util.logging,当我将记录器指向google clouds日志处理程序时,我的google app engine本地开发服务器返回一个classdef not found异常,如何修复此问题 INFO: Dev App Server is now running Can't load log handler "com.google.cloud.logging.LoggingHandler" java.lang.ClassNotFoundException: com.google.cloud.logging.Lo
INFO: Dev App Server is now running
Can't load log handler "com.google.cloud.logging.LoggingHandler"
java.lang.ClassNotFoundException: com.google.cloud.logging.LoggingHandler
java.lang.ClassNotFoundException: com.google.cloud.logging.LoggingHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.util.logging.LogManager$5.run(LogManager.java:965)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:958)
at java.util.logging.LogManager.addLogger(LogManager.java:1165)
at java.util.logging.LogManager.demandLogger(LogManager.java:556)
at java.util.logging.Logger.demandLogger(Logger.java:455)
at java.util.logging.Logger.getLogger(Logger.java:502)
at coffee.weneed.chat.CoffeeChat.<clinit>(CoffeeChat.java:37)
at coffee.weneed.chat.kik.KikServlet.doGet(KikServlet.java:18)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at ...
和我的系统属性:
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
我已经将cloud登录到maven deps中,安装了cloud maven插件。我只是不太明白它为什么不加载这个类。。这被描述为一个错误。这也是JDK as的一个已知问题
问题是LogManager使用系统类加载器来定位处理程序,但您的代码位于web应用程序类加载器中,而web应用程序类加载器将是子类加载器。子类装入器可以在父类中定位类,但不能反过来定位。这就是导致java.lang.ClassNotFoundException
的原因
你可以跟着。这将使用ServletContextListener
访问正确的类加载器。。这被描述为一个错误。这也是JDK as的一个已知问题
问题是LogManager使用系统类加载器来定位处理程序,但您的代码位于web应用程序类加载器中,而web应用程序类加载器将是子类加载器。子类装入器可以在父类中定位类,但不能反过来定位。这就是导致java.lang.ClassNotFoundException
的原因
你可以跟着。这使用了一个
ServletContextListener
来访问正确的类加载器。我最终使用了该功能,因为我不知道如何让JUL工作。我最终使用了该功能,因为我不知道如何让JUL工作。谢谢,这非常有效!最后,我用它来模拟我在上面设置的logging.properties,以防有人想知道它是如何工作的。谢谢,这很有魅力!最后我用它来模拟我在上面添加的logging.properties,以防有人想知道如何使用它。
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>