[logback-user] Log Rotation Fails on Windows if Using JNDI
ceki
ceki at qos.ch
Thu Nov 3 19:06:40 CET 2011
Hi Scott,
I presume you have already read the link provided in the error:
http://logback.qos.ch/codes.html#renamingError
Which applications write to apache-tomcat-6.0.24\logs\debug.log? Does
Tomcat write there too?
Did you know that you can specify the context name in the logback
configuration file? You can also have a configuraion file per
application which than share a configuration file via inclusion.
Here is an example:
For application A:
<configuration>
<statusListener
class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<contextName>appA</contextName>
<include file="c:/foo/shared-logback.xml"/>
</configuration>
For application B:
<configuration>
<statusListener
class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<contextName>appB</contextName>
<include file="c:/foo/shared-logback.xml"/>
</configuration>
shared-logback.xml
<included>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.home}/logs/debug.log</file>
<rollingPolicy ....
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</included>
HTH,
--
Ceki
http://twitter.com/#!/ceki
On 03/11/2011 5:47 PM, Scott Dudley wrote:
>
> I just discovered that log rotation fails on Windows if using
> ContextJNDISelector. I've tried both FixedWindowRollingPolicy and
> TimeBasedRollingPolicy with the same outcome. If I disable JNDI, I lose
> the contextName but rotation occurs as expected.
>
> Here's the error I get:
>
> 12:22:36,006 |-INFO in c.q.l.co.rolling.helper.RenameUtil - Renaming
> file [c:\telmast6\soft\apache-tomcat-6.0.24\logs\debug.log] to
> [c:\telmast6\soft\apache-tomcat-6.0.24\logs\debug1.log]
> 12:22:36,006 |-WARN in c.q.l.co.rolling.helper.RenameUtil - Failed to
> rename file [c:\telmast6\soft\apache-tomcat-6.0.24\logs\debug.log] to
> [c:\telmast6\soft\apache-tomcat-6.0.24\logs\debug1.log].
> 12:22:36,006 |-WARN in c.q.l.co.rolling.helper.RenameUtil - Please
> consider leaving the [file] option of RollingFileAppender empty.
> 12:22:36,006 |-WARN in c.q.l.co.rolling.helper.RenameUtil - See also
> http://logback.qos.ch/codes.html#renamingError
>
> And here is my logback.xml file:
>
> <configuration scan="true" scanPeriod="30 seconds">
>
> <appender name="FILE"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
> <file>${catalina.home}/logs/debug.log</file>
>
> <rollingPolicy
> class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
> <fileNamePattern>${catalina.home}/logs/debug%i.log</fileNamePattern>
> <minIndex>1</minIndex>
> <maxIndex>5</maxIndex>
> </rollingPolicy>
>
> <triggeringPolicy
> class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
> <maxFileSize>25MB</maxFileSize>
> </triggeringPolicy>
> <encoder>
> <pattern>%d{MM/dd
> HH:mm:ss.SSS}|%thread|%X{sessionUserName}|%-5level|%X{debugLevel}|%logger{36}|%replace(%msg){'\n',
> '~~~'}|%contextName%n</pattern>
> </encoder>
> </appender>
>
> <root level="DEBUG">
> <appender-ref ref="FILE" />
> </root>
>
> </configuration>
>
> The logback and slf4j resources must be loaded by the servlet container
> classloader (multiple reasons) and this is also desirable as we want to
> funnel all logging into a single file however, we also need to know
> which application generated the call - er go our use of JNDI (MDC
> wouldn't work).
>
> By the way, this is a Windows-only issue. Works splendidly on Linux.
>
> Thanks.
>
>
More information about the Logback-user
mailing list