
Hi, we're using logback and the RollingFileAppender to write log files from several webservice to a /logs directory and automatically move "old" files into a /logs/archive directory based on a TimeBasedRollingPolicy. This works great with the following configuration: <appender name="SERVICE_CALL_SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator class="com.myproject.logback.ContextEnvironmentPartBasedDiscriminator"> <DefaultValue>unknown</DefaultValue> </discriminator> <sift> <appender name="FILE-AUDIT-${environmentName}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DIR}/service_call_${environmentName}.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- Rollover at midnight. Put log as uncompressed file to archive. --> <FileNamePattern>${LOG_DIR}/archive/service_call_${environmentName}_%d{yyyy-MM-dd}.log</FileNamePattern> <!-- Keep 5 days worth of history --> <MaxHistory>${MAX_HISTORY_DAYS}</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%contextName] refId: %mdc{refId}, %msg%n</Pattern> </layout> </appender> </sift> </appender> But since some of the log files are shared between different applications, I discovered some strange effects (one of the applications stopped writing into one of the log-files) and read about the prudent flag. Now, I tried to switch on the prudent mode using the following configuration: <appender name="SERVICE_CALL_SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator class="com.myproject.logback.ContextEnvironmentPartBasedDiscriminator"> <DefaultValue>unknown</DefaultValue> </discriminator> <sift> <appender name="FILE-AUDIT-${environmentName}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_DIR}/service_call_${environmentName}.log</File> <!-- Ensure safe writing to one log file from different contexts by setting prudent to true --> <Prudent>true</Prudent> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- Rollover at midnight. Put log as uncompressed file to archive. --> <FileNamePattern>${LOG_DIR}/archive/service_call_${environmentName}_%d{yyyy-MM-dd}.log</FileNamePattern> <!-- Keep 5 days worth of history --> <MaxHistory>${MAX_HISTORY_DAYS}</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{HH:mm:ss.SSS} [%contextName] refId: %mdc{refId}, %msg%n</Pattern> </layout> </appender> </sift> </appender> This way, the node /appender/sift/appender/File isn't used anymore and the logger directly writes into the archive file specified under /appender/sift/appender/rollingPolicy/FileNamePattern. Is there a way of using the prudent mode but still separating the log from the archive files? Thanks for your help! tom