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
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-dev