在配置属性文件的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
框架也能完成同样的事情。
答案 0 :(得分:0)
如何使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对象后,您可以将全局流交换回正确的位置。