This works :
<configuration debug="true">
<statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
<appender name="REQUESTLOG"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/bps/log/request/bpayadmin_request.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/bps/log/archive/request/my_request_%d{yyyy-MM-dd}_%d{HH_mm_ss,aux}.log.zip
</fileNamePattern>
<maxHistory>30</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy
class="no.buypass.gen.log.StartupTimeBasedTriggeringPolicy" />
</rollingPolicy>
<encoder>
<pattern>combined</pattern>
</encoder>
</appender>
<appender-ref ref="REQUESTLOG" />
</configuration>
This does not work (it archives etc, but never any contents in the file) :
LoggerContext loggerContext = LoggerContext.class.cast(LoggerFactory.getILoggerFactory());
RollingFileAppender<IAccessEvent> appender = new RollingFileAppender<>();
appender.setName("REQUESTLOG");
appender.setFile("/bps/log/request/myrequest.log");
TimeBasedRollingPolicy<IAccessEvent> timePolicy = new TimeBasedRollingPolicy<>();
timePolicy.setFileNamePattern("/bps/log/archive/request/my_request_%d{yyyy-MM-dd}_%d{HH_mm_ss,aux}.log.zip");
timePolicy.setContext(loggerContext);
timePolicy.setMaxHistory(30);
timePolicy.setTimeBasedFileNamingAndTriggeringPolicy(new StartupTimeBasedTriggeringPolicy<IAccessEvent>());
timePolicy.setParent(appender);
appender.setRollingPolicy(timePolicy);
appender.setTriggeringPolicy(timePolicy);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern("combined");
appender.setEncoder(encoder);
RequestLogImpl requestLog = new RequestLogImpl();
requestLog.addAppender(appender);