Keith Gregory created LOGBACK-1437: -------------------------------------- Summary: Attempting to log session ID throws if session not set Key: LOGBACK-1437 URL: https://jira.qos.ch/browse/LOGBACK-1437 Project: logback Issue Type: Bug Components: logback-access Affects Versions: 1.2.3 Environment: Tomcat 8.5 Oracle JDK 1.8 Logback 1.2.3 (although it appears that the code in 1.3.0-alpha has the same problem) Reporter: Keith Gregory Assignee: Logback dev list
With a simple web-app that does not automatically create a session, using the following pattern in \{\{logback-access.xml}}: \{code:xml} <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%h %l %u %user %date "%r" %s %b %sessionID</pattern> </encoder> </appender> \{code} will cause the following exception: \{code} 20:22:26,782 |-ERROR in ch.qos.logback.core.ConsoleAppender[STDOUT] - Appender [STDOUT] failed to append. java.lang.IllegalStateException: Cannot create a session after the response has been committed at java.lang.IllegalStateException: Cannot create a session after the response has been committed at at org.apache.catalina.connector.Request.doGetSession(Request.java:3030) at at org.apache.catalina.connector.Request.getSession(Request.java:2451) at at ch.qos.logback.access.spi.AccessEvent.getSessionID(AccessEvent.java:249) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:21) ... \{code} I believe that you can resolve this by changing [AccessEvent.getSession()|https://logback.qos.ch/xref/ch/qos/logback/access/spi/AccessEvent.html#L249] to call \{\{getSession(false)}} rather than \{\{getSession()}}. -- This message was sent by Atlassian JIRA (v7.3.1#73012) _______________________________________________ logback-dev mailing list logback-dev@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-dev