Petite astuce logback

Petite astuce avec logback : il est possible d’utiliser des variables dans le fichier de configuration, définies comme variables d’environnement (-D) ou venant d’un fichier de properties paramétré dans le fichier logback.xml. ce fichier peut même provenir du classpath :

par exemple avec dans mon fichier properties :

environment=INT

Et la config logback suivante :

<property resource="monapp-config.properties" />

<appender name="monapp" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/tmp/logs/monapp-${environment}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/tmp/logs/monapp-${environment}.%d{yyy-MM-dd}.log
<maxHistory>30
</rollingPolicy>

<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>

Je peux faire varier le nom du fichier en fonction de l’environnement (qui peut lui même être filtré par maven mais c’est une autre histoire).