【发布时间】:2014-10-11 19:13:30
【问题描述】:
是否可以将 System.out (OutputStream) 直接写入“旧”log4j 中的日志文件?
我只找到 log4j 的解决方案,而不是 log4j2
感谢您的帮助!
【问题讨论】:
标签: java logging configuration log4j log4j2
是否可以将 System.out (OutputStream) 直接写入“旧”log4j 中的日志文件?
我只找到 log4j 的解决方案,而不是 log4j2
感谢您的帮助!
【问题讨论】:
标签: java logging configuration log4j log4j2
使用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
【讨论】:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-iostreams</artifactId> <version>${log4j.version}</version> </dependency>。包含块:import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.io.IoBuilder;
即将发布的 2.1 版本包含一个新的 log4j-iostreams 模块,它可以做到这一点以及更多。应该快出来了。
如果您赶时间,可以查看 master 的最新源并构建 2.1 快照。
【讨论】: