2014-10-11 120 views
2

是否可以將System.out(OutputStream)直接寫入日誌文件,如「舊」log4j中?將System.out寫入log4j2文件

我只找到log4j的解決方案,而log4j2

感謝您的幫助!

回答

1

即將發佈的2.1版本包含一個新的log4j-iostreams模塊,可以做到這一點和更多。應該很快出來。

如果您很着急,可以查看master的最新源代碼並構建2.1快照。

+2

thx,你能給我任何代碼示例嗎? – Niko 2014-10-17 10:00:04

+1

剛剛下載log4j2-5,仍然無法弄清楚如何將system.out發送到文件 – 2015-12-15 22:00:27

0

使用log4j2-iostreams模塊很容易。比方說,我們想從System.out發送的所有郵件日誌中記錄與名稱system.out與日誌級別INFO

System.setOut(
     IoBuilder.forLogger(LogManager.getLogger("system.out")) 
       .setLevel(Level.INFO) 
       .buildPrintStream() 
); 
System.out.println("Lorem ipsum"); 

具有以下log4j2.properties

appender.console.type = Console 
appender.console.name = STDOUT 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = %d [%p] %c - %m%n 

rootLogger.level = info 
rootLogger.appenderRef.stdout.ref = STDOUT 

我們應該在控制檯中看到以下的輸出:

2017-10-28 12:38:22,623 [INFO] system.out - Lorem ipsum