[logback-dev] [JIRA] Commented: (LBCLASSIC-212) Logback classic doesn't work with Tomcat
Andy Duplain (JIRA)
noreply-jira at qos.ch
Tue Jul 6 13:16:16 CEST 2010
[ http://jira.qos.ch/browse/LBCLASSIC-212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11785#action_11785 ]
Andy Duplain commented on LBCLASSIC-212:
----------------------------------------
I can confirm this issue; after failing to find a datasource during Servlet initiation, the server appears to lock-up (I have added a message after the exception report and this message doesn't show up).
I am using tomcat 6.0.26, logback-core and -classic 0.9.21 with slf4j-api-1.6.0. All logback and slf4j jars are installed into tomcat/lib and are not part of the application's war file.
Example log output:
INFO: Metro monitoring rootname successfully set to: com.sun.metro:pp=/,type=WSEndpoint,name=/fdews-ActionsService-ActionsPort
12:04:07.704 [main] DEBUG com.neuralt.fdews.ActionsServlet - init(config)
12:04:07.708 [main] DEBUG com.neuralt.fdews.Actions - init
12:04:07.710 [main] DEBUG com.neuralt.util.DbConnection - Getting JNDI connection 'dev10g21'
12:04:07.717 [main] ERROR com.neuralt.util.DbConnection - Exception while getting database connection
javax.naming.NameNotFoundException: Name dev10g21 is not bound in this Context
> Logback classic doesn't work with Tomcat
> ----------------------------------------
>
> Key: LBCLASSIC-212
> URL: http://jira.qos.ch/browse/LBCLASSIC-212
> Project: logback-classic
> Issue Type: Bug
> Affects Versions: 0.9.21
> Reporter: Grzegorz Borkowski
> Assignee: Logback dev list
> Priority: Critical
>
> We have a web application running on Tomcat 6.0.26, which uses SLF4J for logging. Until now, we used SLF4J-Simple, and it worked very well. Now we try to switch to Logback, but we are not able to make it work. It works for logging one-line messages. But whenever any exception is thrown on server, which should print a stack trace, server hangs (It doesn't matter whether we actually print the stack trace in log or not). From what I was able to observe, it looks like it falls into endless loop, throwing "ClassNotFoundException: ch.qos.logback.classic.spi.ThrowableProxyUtil", which is caught and tried to be logged, which throws this exception again, and so on. I don't know why it throws this ClassNotFoundException - perhaps classloader issue? But even copying the logback jars to Tomcat's lib directory, I'm not able to run the application: than it has problems with starting up. Sometimes it freezes during loading web app, and often it helps to attach and detach debugger to Tomcat - it's a kind of magic... Anyway, it's horrendously painful, and I'm not able to make it work. Why such common setup (webapp on Tomcat) is not described in Logback documentation???
> This is our configuration file :
> <configuration scan="true">
> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
> <!-- encoders are assigned the type
> ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
> <encoder>
> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex</pattern>
> </encoder>
> </appender>
> <root level="info">
> <appender-ref ref="STDOUT" />
> </root>
> </configuration>
> (changing scan to "false" doesn't help. Also changing pattern to the one not containing "%ex" doesn't help)
> This is part of pom file related to logging:
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-api</artifactId>
> <version>1.6.0</version>
> </dependency>
> <dependency>
> <groupId>ch.qos.logback</groupId>
> <artifactId>logback-classic</artifactId>
> <version>0.9.21</version>
> <scope>runtime</scope>
> </dependency>
> <!-- prevent JCL bundling into final WAR by using scope="provided" -->
> <dependency>
> <groupId>commons-logging</groupId>
> <artifactId>commons-logging</artifactId>
> <version>1.1.1</version>
> <scope>provided</scope>
> </dependency>
> <!-- use this as adpater to satisfy dependencies on JCL -->
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>jcl-over-slf4j</artifactId>
> <version>1.6.0</version>
> </dependency>
> If we change dependency from logback to SLF4J simple (1.6.0) than everything works smoothly, stacktraces are printed to console, no freezing, everything is perfect.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the logback-dev
mailing list