【发布时间】:2013-07-16 03:08:23
【问题描述】:
是否可以告诉 Eclipse 在控制台中只显示错误?
这可能很有用,因为我正在使用使用输出来显示不需要的数据的外部库。我知道有一个按钮“标准错误更改时显示控制台”,但是,我正在寻找一个过滤器。
问候。
【问题讨论】:
-
使用什么样的日志记录?每个实现都有自己的方式来提高每个包/类的日志记录级别
是否可以告诉 Eclipse 在控制台中只显示错误?
这可能很有用,因为我正在使用使用输出来显示不需要的数据的外部库。我知道有一个按钮“标准错误更改时显示控制台”,但是,我正在寻找一个过滤器。
问候。
【问题讨论】:
Eclipse(Console 视图)显示两种不同的输出:标准输出 (System.out) 和错误输出 (System.err)。 Eclipse 本身无法区分程序运行时记录的实际错误/异常,以及将版权/许可信息写入错误流的外部库。
【讨论】:
System.out 或System.err 的依赖项,他需要在昨天转储该依赖项。日志库就是因为这个原因而存在的,他可能有办法阻止这个输出
您可以使用 System.setOut 和 System.setErr 函数将 System.out 和/或 System.err 重定向到另一个 OutputStream。这样您就可以创建自己的“控制台视图”或自己处理输出。如果您实现自定义的 OutputStream 类,您还可以将数据发送到原始 OutputStream(原始 System.out 或 System.err)。
PrintStream oldOut;
oldOut = System.out;
System.setOut(new PrintStream(new OutputStream() {
@Override
public void write(int b) throws IOException {
// handle the "b" or
// send it to old stdout:
oldOut.write(b);
}
}));
// do what you want with the stream and afterwards
System.setOut(oldOut);
另外请注意,如果您在 UI 线程中执行此操作,可能会出现问题。对我来说,应用程序总是在之后挂起。
如果您重定向这些流,您可以决定是否将其转发到标准输出/错误。
【讨论】: