I'm experiencing this same issue. <maxHistory> doesn't seem to be noticed at all. This feature seems to have been reported many many times and occasionally marked as fixed, but it's definitely broken!

<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>c:/temp/logs/logback_dld.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<maxHistory>2</maxHistory>
<fileNamePattern>c:/temp/logs/logback_dld-%d

{yyyy-MM-dd}

.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>20MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>

<encoder>
<!--pattern>%date %level [$thread] %logger

{10}

[%file:%line] %msg%n</pattern-->
<pattern>%d

{YYYY-MM-dd HH:mm:ss.SSS}

[%thread] %-5level %logger

{36}

- %msg%n</pattern>
</encoder>
</appender>

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira