【问题标题】:log4j.appender.console.target equivalent in java.util.logging config properties filejava.util.logging 配置属性文件中的 log4j.appender.console.target 等效项
【发布时间】:2019-10-23 12:52:35
【问题描述】:

在配置属性文件中的java.util.logging 框架中寻找log4j.appender.console.target 等效项(不使用代码)。

我有一千多个 Java 类。几乎所有人都有自己的 Logger 实例,例如:

import java.util.logging.Logger;
Logger logger = Logger.getLogger(MyClass.class.getName());

我的问题是,记录器将所有日志消息打印到System.err 流。但是,我希望它打印在System.out

我知道我可以添加如下处理程序以使用不同的流。

logger.addHandler(new StreamHandler(System.out, new SimpleFormatter()))

但是我有很多 Java 类要更改。我不想这样做。

如何使java.uitl.logging 框架将日志消息打印到所有类的System.out 流?

我正在属性文件中寻找所有类都相同的配置设置。

与 log4j 一样,我们有 log4j.properties 文件,我可以在其中设置 log4j.appender.console.target=System.out,它告诉所有 log4j 记录器将日志消息打印到 System.out。我也想用java.util.logging 框架做同样的事情。

【问题讨论】:

  • 简单的 java util logger 日志到控制台,不需要自定义。编写一个简单的java程序并检查。
  • @Sambit,感谢您的快速回复。我确实检查了示例 Java 代码.. java util logger 日志以 RED 显示到控制台.. 这意味着它打印在标准错误流上(即System.err)。

标签: java logging properties log4j java.util.logging


【解决方案1】:

如何让 java.uitl.logging 框架为所有类打印日志消息到 System.out 流?

java.util.logging 中没有 ConsoleHandler target 等效项。 directing ConsoleHandler output to System.out is cover in another SO question的话题。该问题中列举了您的大部分选项。

ConsoleHandler 将在构造过程中获取System.err 的快照。一种选择是将全局错误流与全局输出流交换。在构造完所有 ConsoleHandler 对象后,您可以将全局流交换回正确的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多