2011-05-13 93 views
6

我正在嘗試將日誌調用直接輸出到不同位置的不同輸出級別。我希望所有的日誌總是進入文件,而只需要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

回答

6

發送跟蹤到兩個附加目的地

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

相關問題