如何使用logback.groovy文件将TRACE级别记录到文件并将INFO记录到控制台

问题描述:

我正在尝试将日志调用直接输出到不同位置的不同输出级别。我希望所有的日志总是进入文件,而只需要INFO和上面的控制台。这不可能吗?我有以下,它不起作用。两者都是一样的:如何使用logback.groovy文件将TRACE级别记录到文件并将INFO记录到控制台

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.crystal", WARN, ["STDOUT"]) 
logger("com.crystal", TRACE, ["FILE"]) 

root(TRACE) 

scan() 

是否有可能直接相同的日志消息,根据关不同级别的两个不同的地方?

+0

标记你的问题 “的logback” 将是有益的。 – Ceki 2011-09-11 21:35:42

发送跟踪到两个附加目的地

logger 'com.crystal', TRACE, ['STDOUT', 'FILE'] 

,但添加了一个筛选的ConsoleAppender

appender("FILE", FileAppender) { 
    filter(ch.qos.logback.classic.filter.ThresholdFilter) { 
    level = INFO 
    } 
    ... 
} 
+0

非常感谢!我一直试图永远没有成功,直到你走了! – 2011-05-14 02:26:07