java - 使用 log4j2 将 System.out 写入文件

标签 java logging configuration log4j log4j2

是否可以像“旧”log4j 那样将 System.out(OutputStream)直接写入日志文件?

我只找到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

关于java - 使用 log4j2 将 System.out 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26318295/

相关文章:

java - 如何在java中使用Log4j获取记录器信息

php - 当用户点击链接时插入 click_url、时间戳和用户名

java - Eclipse 启动时崩溃

java - 使用 Jersey 的 ExceptionMapper 忽略 web.xml 错误页面

java - 如何以编程方式告诉 Logback 重新加载配置

configuration - 自定义 Emacs GDB

Hibernate 4 + Spring 3.1 配置对象

java - Artifact 下载耗时多无结果

java - 用于查找未使用代码的轻量级 JVM Instrumentation

linux - Bash - 使用 sed 更改配置文件