Search code examples
logbacklogback-groovy

logback how to set destination folder for log files


Is there a way to set a single destination folder, such that I can specify where all log files should be created rather than having to set it on an appender by appender basis?


Solution

  • You can define a property in the logback configuration file an use it as below

    <configuration>
    
      <property name="USER_HOME" value="/home/sebastien" />
    
      <appender name="SPRING_LOGS" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/spring.log</file>
        <encoder>
          <pattern>%msg%n</pattern>
        </encoder>
      </appender>
    
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/myApp.log</file>
        <encoder>
          <pattern>%msg%n</pattern>
        </encoder>
      </appender>
    
      <root level="debug">
        <appender-ref ref="FILE" />
      </root>
    </configuration>
    

    Note that logback can read the variables from System properties or a separate properties file too. Follow the manual for more details.