3

次の logback.groovy 構成ファイルがありますが、やりたいことを実行しない理由が理解できないようです。理想的には、TRACE 以上のメッセージはすべてファイルに記録され、WARN 以上のメッセージはすぐに stdout に表示されます。残念ながら、私はこれをまったく実現できないようです。何か案は?

import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.ConsoleAppender
import ch.qos.logback.core.FileAppender

import static ch.qos.logback.classic.Level.TRACE
import static ch.qos.logback.classic.Level.WARN

def bySecond = timestamp("yyyyMMdd'.'HHmmss", context.birthTime)

appender("STDOUT", ConsoleAppender) {
  encoder(PatternLayoutEncoder) {
    pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
  }
}

appender("FILE", FileAppender) {
  file = "./logs/log-${bySecond}.log"
  encoder(PatternLayoutEncoder) {
    pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
  }
}

logger("com.foo", WARN, ["STDOUT"])
root(TRACE, ["FILE"])

ありがとう!

4

1 に答える 1

2

logback.groovyファイルの先頭(最後のインポートの直後)に次の行を追加します

import ch.qos.logback.core.status.OnConsoleStatusListener

statusListener(OnConsoleStatusListener)
于 2011-05-14T16:19:08.397 に答える