logback の設定ファイル内で条件分岐

環境に応じて設定をちょこっと変えたいなら logback.groovy で条件分岐してしまうのがお手軽。

システムプロパティに log.highlight=true があったときだけ logback の出力を色付けする の設定を有効にするならこんな感じ。

import static ch.qos.logback.classic.Level.*
import ch.qos.logback.core.ConsoleAppender
import ch.qos.logback.classic.encoder.PatternLayoutEncoder

def highlight = System.getProperty("log.highlight") == "true" ?: false

appender("STDOUT", ConsoleAppender) {
  withJansi = true
  encoder(PatternLayoutEncoder) {
      pattern = (highlight) ?
        "%white(%date{HH:mm:ss.SSS}) %highlight(%-5level) %cyan(%logger{15}) %highlight(%message) %n" :
        "%date{HH:mm:ss.SSS} %-5level %logger{15} %message%n"
  }
}
root(INFO, [ "STDOUT" ])