java.util.logging配置属性文件中的log4j.appender.console.target等效项

时间:2019-06-08 06:29:42

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

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

我有上千个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框架也能完成同样的事情。

1 个答案:

答案 0 :(得分:0)

  

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

java.util.logging中没有等效的ConsoleHandler targetdirecting ConsoleHandler output to System.out is cover in another SO question的主题。该问题列举了您的大多数选择。

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