I recently had a requirement to configure JBoss logging to rotate both on a daily basis and by file size. The goal was to generate an output structure that looks like this
server.log.2026-06-24.3 server.log.2026-06-24.2 server.log.2026-06-24.1 server.log
To achieve this, I use the
<subsystem xmlns="urn:jboss:domain:logging:8.0">
<periodic-size-rotating-file-handler name="DAILY_SIZE_FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<suffix value=".yyyy-MM-dd"/>
<rotate-size value="200m"/>
<max-backup-index value="30"/>
<append value="true"/>
</periodic-size-rotating-file-handler>
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="DAILY_SIZE_FILE"/>
</handlers>
</root-logger>
</subsystem>
The configuration above perfectly combines both strategies. It performs a daily log rotation, but it will also trigger the creation of a newly indexed log file whenever the current file size exceeds 200MB within that same day.