Java 拦截正在使用Logger从另一个类生成的stderr?
我有一个类生成错误输出,我想使用Logger输出。我对我是如何做到这一点有点困惑。我有这样的想法:Java 拦截正在使用Logger从另一个类生成的stderr?,java,logging,Java,Logging,我有一个类生成错误输出,我想使用Logger输出。我对我是如何做到这一点有点困惑。我有这样的想法: public static void main(String[] args) throws Exception { ClassA foo = new ClassA(); Logger logger = Logger.getLogger(ClassA.class.getName()); FileHandler logFile = new FileHandler("LogToF
public static void main(String[] args) throws Exception {
ClassA foo = new ClassA();
Logger logger = Logger.getLogger(ClassA.class.getName());
FileHandler logFile = new FileHandler("LogToFile2.txt");
logFile.setFormatter(new SimpleFormatter());
logger.addHandler(logFile);
logger.info("A message logged to the file");
foo.bar();
}
它输出“一条记录到文件中的消息”,但我从bar()收到的其余信息stderr没有被捕获。我假设bar hass Logger.getLogger在其中调用。您应该在名为logging.properties的文件中设置整个日志应用程序 现在,您正在为CobolProgramService检索的记录器实例上执行此操作 因此,当您在foo.bar()中调用Logger.getLogger时,它将有一个标准设置
请查看有关该主题的更多高级信息。对不起,我本打算删除此内容。所以我需要在另一个类中调用getLogger来执行?是的,如果您写入System.err,它将输出到stderr。记录器不会捕获stderr的输出。谢谢。我知道这不是最优的,但在保留控制台输出(即不只是重定向)的同时,是否仍然可以捕获stdErr