java.lang.ClassCircularityError: java/util/logging/LogRecord
java.util.Loggerをslf4jにブリッジするために、下記設定をすることは色んなサイトに書いてある。
SLF4JBridgeHandler.removeHandlersForRootLogger(); SLF4JBridgeHandler.install();
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener>
が、この設定をすると下記のエラーが発生してしまう。
java.lang.ClassCircularityError: java/util/logging/LogRecord at org.slf4j.bridge.SLF4JBridgeHandler.getSLF4JLogger(SLF4JBridgeHandler.java:198) at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:293) at java.util.logging.Logger.log(Logger.java:738) at java.util.logging.Logger.doLog(Logger.java:765) at java.util.logging.Logger.logp(Logger.java:931) at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:180) at org.apache.juli.logging.DirectJDKLog.debug(DirectJDKLog.java:103) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:355) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:161) at org.apache.catalina.startup.Catalina.start(Catalina.java:630) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
このエラーはlogback.xmlに下記設定を施すことで解決できた。
<logger name="org.apache" level="INFO">
参考:
https://stackoverflow.com/questions/2656565/classcircularityerror-when-running-tomcat-6-from-eclipse