Java 使用log4j2将System.out写入文件

Java 使用log4j2将System.out写入文件,java,logging,configuration,log4j,log4j2,Java,Logging,Configuration,Log4j,Log4j2,是否可以将System.out(OutputStream)直接写入“old”log4j中的日志文件 我只找到log4j的解决方案,而不是log4j2 谢谢你的帮助 即将发布的2.1版本包含一个新的log4j iostreams模块,它可以实现这一点和更多功能。应该很快就会出来 如果您有急事,可以从master中查看最新的源代码并构建2.1快照。使用log4j2 iostreams模块非常简单。假设我们希望将所有消息从System.out发送到名为System.out且日志级别为INFO的记录器:

是否可以将System.out(OutputStream)直接写入“old”log4j中的日志文件

我只找到log4j的解决方案,而不是log4j2


谢谢你的帮助

即将发布的2.1版本包含一个新的log4j iostreams模块,它可以实现这一点和更多功能。应该很快就会出来


如果您有急事,可以从master中查看最新的源代码并构建2.1快照。

使用
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

刚刚下载了log4j2-5,但仍然不知道如何将system.out发送到文件。我与maven依赖关系和includes之间存在矛盾。他们来了。Maven对此的依赖关系是:
org.apache.logging.log4j log4j iostreams${log4j.version}
。包括块:
import org.apache.logging.log4j.Level;导入org.apache.logging.log4j.LogManager;导入org.apache.logging.log4j.io.IoBuilder