Details
-
Bug
-
Resolution: Duplicate
-
Major
-
1.2.2, 1.2.3
-
None
-
Oracle Java 1.7.0_71
Apache Tomcat 7.0.77
Description
I'm trying to set up logging using Logback similar to my existing JULI logging configuration where I used %S macro in pattern. Logback throws an error when it tries to append message to access log and request is not logged.
Without %S macro everything seems to working fine.
logback-access.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="ACCESS-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${catalina.base}/logs/access.log</file> <append>true</append> <encoder class="ch.qos.logback.access.PatternLayoutEncoder"> <charset>utf-8</charset> <pattern>%t %I %i{X-Forwarded-For} %h "%r" %s %b %D %S "%i{User-Agent}"</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/logs/access.log.%d{yyyyMMdd}.gz</fileNamePattern> </rollingPolicy> </appender> <appender-ref ref="ACCESS-LOG" /> </configuration>
Error message in catalina.out
14:53:13,142 |-INFO in ch.qos.logback.access.tomcat.LogbackValve[null] - filename property not set. Assuming [conf/logback-access.xml] 14:53:13,146 |-INFO in ch.qos.logback.access.tomcat.LogbackValve[null] - Found configuration file [/pub/site/exchg/conf/logback-access.xml] using property "catalina.base" 14:53:13,181 |-INFO in ch.qos.logback.access.joran.action.ConfigurationAction - debug attribute not set 14:53:13,181 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 14:53:13,189 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ACCESS-LOG] 14:53:13,223 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@14729364 - Will use gz compression 14:53:13,224 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@14729364 - Will use the pattern /pub/site/exchg/logs/access.log.%d{yyyyMMdd} for the active file 14:53:13,227 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyyMMdd' from file name pattern '/pub/site/exchg/logs/access.log.%d{yyyyMMdd}.gz'. 14:53:13,227 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight. 14:53:13,228 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Sun May 14 14:53:13 NOVT 2017 14:53:13,230 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS-LOG] - Active log file name: /pub/site/exchg/logs/access.log 14:53:13,230 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS-LOG] - File property is set to [/pub/site/exchg/logs/access.log] 14:53:13,231 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [ACCESS-LOG] to ch.qos.logback.access.tomcat.LogbackValve[null] 14:53:13,231 |-INFO in ch.qos.logback.access.joran.action.ConfigurationAction - End of configuration. 14:53:13,231 |-INFO in ch.qos.logback.access.joran.JoranConfigurator@1836d6a - Registering current configuration as safe fallback point 14:53:13,231 |-INFO in ch.qos.logback.access.tomcat.LogbackValve[null] - Done configuring 14:53:14,496 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS-LOG] - Appender [ACCESS-LOG] 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:3069) at at org.apache.catalina.connector.Request.getSession(Request.java:2424) at at ch.qos.logback.access.spi.AccessEvent.getSessionID(AccessEvent.java:249) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:21) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:18) at at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36) at at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:200) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:69) at at ch.qos.logback.core.encoder.LayoutWrappingEncoder.encode(LayoutWrappingEncoder.java:115) at at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230) at at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235) at at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102) at at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84) at at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51) at at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:268) at at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at at java.lang.Thread.run(Thread.java:745) 14:53:14,498 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS-LOG] - Appender [ACCESS-LOG] 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:3069) at at org.apache.catalina.connector.Request.getSession(Request.java:2424) at at ch.qos.logback.access.spi.AccessEvent.getSessionID(AccessEvent.java:249) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:21) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:18) at at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36) at at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:200) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:69) at at ch.qos.logback.core.encoder.LayoutWrappingEncoder.encode(LayoutWrappingEncoder.java:115) at at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230) at at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235) at at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102) at at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84) at at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51) at at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:268) at at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at at java.lang.Thread.run(Thread.java:745) 14:53:14,502 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS-LOG] - Appender [ACCESS-LOG] 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:3069) at at org.apache.catalina.connector.Request.getSession(Request.java:2424) at at ch.qos.logback.access.spi.AccessEvent.getSessionID(AccessEvent.java:249) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:21) at at ch.qos.logback.access.pattern.SessionIDConverter.convert(SessionIDConverter.java:18) at at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36) at at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:200) at at ch.qos.logback.access.PatternLayout.doLayout(PatternLayout.java:69) at at ch.qos.logback.core.encoder.LayoutWrappingEncoder.encode(LayoutWrappingEncoder.java:115) at at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230) at at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235) at at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102) at at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84) at at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51) at at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:268) at at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at at java.lang.Thread.run(Thread.java:745)
Attachments
Issue Links
- duplicates
-
LOGBACK-1219 logback-access exceptions during logout
- Resolved