使用log4j2将System.out写入文件 [英] write System.out to file with log4j2

查看:66
本文介绍了使用log4j2将System.out写入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以像在旧" log4j中一样直接将System.out(OutputStream)写入日志文件?

Is it possible to write the System.out (OutputStream) directly to a log file like in the "old" log4j?

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

I only find solutions for log4j, not log4j2

感谢您的帮助!

推荐答案

使用 log4j2-iostreams 模块非常容易.假设我们想将所有消息从 System.out 发送到名称为 system.out 的记录器,日志级别为 INFO :

It is quite easy using log4j2-iostreams module. Let's say we want to send all messages from System.out to a logger with name system.out with log level 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

我们应该在控制台中看到以下输出:

we should see the following output in the console:

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

这篇关于使用log4j2将System.out写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆