在配置属性文件中的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框架也能做同样的事情。
发布于 2019-06-10 23:20:19
如何让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对象之后,您可以将全局流交换回正确的位置。
https://stackoverflow.com/questions/56504068
复制相似问题