有没有办法在IntelliJ中找到以前运行的输出?

时间:2014-08-07 08:55:36

标签: intellij-idea

每次运行某个程序时,其他程序的上一次运行的输出似乎被新输出覆盖。有没有办法看到以前运行的程序的输出?

1 个答案:

答案 0 :(得分:9)

没有。在“运行/调试”配置的“日志”选项卡上,可以打开“将控制台输出保存到文件”选项。 (您可以在“默认值”配置下设置它,以便默认情况下始终存在。但是这仅适用于当前项目。要设置为所有未来项目的默认值,请从欢迎屏幕(即关闭所有项目)转到配置>项目默认值>运行配置)不幸的是,在每次新运行时(也)都会覆盖该输出文件。据我所知,没有办法在文件名中添加时间戳。您可以open a feature request要求他们增强此功能以保留最后 x 次运行次数或允许时间戳。

与此同时,您可以使用两种方法来解决此问题。

选项1 - 日志框架

第一个选项是使用日志框架。这将不包括启动信息或控制台具有的任何System.out / err(除非您使用sysout-over-slf4j之类的内容)。在运行/调试配置中的相同“日志”选项卡上,您可以设置为在控制台工具窗口中显示日志文件。好消息是IntelliJ IDEA仅显示该运行的新输出。但是之前运行的输出仍然在日志文件中(假设您的记录器设置为追加而不会在新运行时覆盖)。指定日志名称时,可以使用通配符(用于处理日志中的日期戳等内容)。它使用Ant文件集模式表示法。单击“编辑日志文件别名”对话框中的帮助按钮以获取更多信息。默认情况下,IDEA仅显示最新日志,除非您在“编辑日志文件别名”中选择“按模式显示所有可覆盖的文件”。

选项2 - 使用脚本

另一种选择是使用“将控制台文件输出保存到文件”选项。然后编写移动/重命名该输出的外部脚本或Ant任务。 (您可以将其设置为花哨,因此它只保存最后的x次运行,滚动前面的名称。)然后在运行/调试配置中,使用“在运行之前”中的“运行外部工具”或“运行Ant目标”选项“运行脚本的部分。 (同样,您可以在默认配置中设置它,以便它自动存在。)这样,您的脚本将在创建新输出之前运行,重命名文件并覆盖旧的。