当前位置: 首页 > 面试题库 >

将STDOUT复制到文件而不停止在屏幕上显示

酆阳煦
2023-03-14
问题内容

我正在制作的程序被设计为无人值守运行,因此,我将stdout和stderr流重定向到了一个日志文件。尽管此程序没有任何问题,但我仍在制作和调试该软件,但我希望它也能显示在屏幕上。这可能吗?

重定向我用过的流

System.setErr(logWriter);
System.setOut(logWriter);

谢谢。


问题答案:

也许有点粗糙,但是您可以尝试以下方法:

private static final isDebugMode = true;

...

if (!isDebugMode) {
  System.setErr(logWriter);
  System.setOut(logWriter);
}

或者,您可以编写自己的PrintStream实现,该实现同时写入日志文件和屏幕。听起来似乎除了开发之外,您不需要这种行为,因此,尽管后者实际上对您的问题的更准确答案可能不是您真正想要的。



 类似资料:
  • 这可能是我处理布局的方式有问题。对Java和Android软件开发工具包来说有点新鲜。我正在使用Android Studio。 我在这一点上的目标是有一个应用程序,屏幕底部显示一个带有图标的导航栏,顶部有一个带有“关闭”按钮和“保存”按钮的工具栏。工具栏和导航栏之间应该是一个空白的白色屏幕。 但是我很难让工具栏停留在屏幕的顶部。灰色背景占据了白色背景前面的整个屏幕。下面是截图。 这是我所知道的:

  • 我正在从docker容器中运行elasticsearch。 在为ssl和屏蔽配置elasticsearch时,我的文件获得非法条目,即而不是。 现在我的docker容器没有启动,并出现以下错误: 如何在不丢失数据的情况下编辑或替换它,或替换现有容器中的文件?

  • 问题内容: 我有这个: 我想回显“构建路径”参考中的所有内容(用于调试某些内容)。 我努力了: 但它只是回显确切的文本“ $ {build-path}” 问题答案: 您可以使用记录在案的(诚​​实的,它在那儿……)助手:

  • 问题内容: 我是shell脚本的新手,并且正在使用Ubuntu-11.10。在使用命令后的终端中,无论我向终端发出什么命令,其输出都不会显示在终端中。我知道STDOUT将被重定向到文件,这些命令的输出将被重定向到文件。 我的问题在这里 使用后,如何摆脱这种情况?即如何停止STDOUT重定向到文件并恢复STDOUT的正常操作(即重定向到终端而不是文件)? 我尝试使用,但由于这关闭了STDOUT文件描