如何在 Windows 7 中处理大型控制台输出?
How can I handle large console output in Windows 7?
我正在使用基于 Java 的应用程序。当它启动时,它会打开一个控制台并在那里写入它的输出。
然而,有时输出太大以至于不适合控制台window(控制台window最多10000行),输出大10倍以上).
我已经尝试下载其他控制台应用程序(如 con Emu),但最大行数(约 32760)也太小了。
我的 PC 上有 Ultra Edit,它可以捕获 DOS 命令输出,但在调试我的程序时,我无法从简单的文本编辑器对话框中启动调试会话。
现在我有几个解决方案:
- 将已经 运行 进程的控制台 window 的输出重定向到我系统上的本地文件。
- 还未找到另一个不受预定义值限制的控制台仿真工具。
- 自己开发 sych 控制台仿真工具(最好在 Python、Java 或 Visual Basic 中),但为了做到这一点,我需要从 Windows 7 API 如何开始这样做。
谁能告诉我正确的方向?
谢谢
如果它是您所说的 Java 应用程序,您可以将启动包装在您自己的 class 中,将 System.out
和 System.err
替换为基于 TeeOutputStream
s 的东西将同时打印到控制台(你从 System.out 的值之前保存的)和你设置的日志文件。
像这样:
public class LogWrapper {
public static void main(String[] args) {
PrintStream out = System.out;
PrintStream err = System.err;
System.setOut(new TeePrintStream(out, new PrintStream("system.out.log")));
System.setErr(new TeePrintStream(err, new PrintStream("system.err.log")));
the.original.ClassYouWereCalling.main(args);
}
}
注意:TeePrintStream
您仍然需要做...
我正在使用基于 Java 的应用程序。当它启动时,它会打开一个控制台并在那里写入它的输出。
然而,有时输出太大以至于不适合控制台window(控制台window最多10000行),输出大10倍以上).
我已经尝试下载其他控制台应用程序(如 con Emu),但最大行数(约 32760)也太小了。
我的 PC 上有 Ultra Edit,它可以捕获 DOS 命令输出,但在调试我的程序时,我无法从简单的文本编辑器对话框中启动调试会话。
现在我有几个解决方案:
- 将已经 运行 进程的控制台 window 的输出重定向到我系统上的本地文件。
- 还未找到另一个不受预定义值限制的控制台仿真工具。
- 自己开发 sych 控制台仿真工具(最好在 Python、Java 或 Visual Basic 中),但为了做到这一点,我需要从 Windows 7 API 如何开始这样做。
谁能告诉我正确的方向?
谢谢
如果它是您所说的 Java 应用程序,您可以将启动包装在您自己的 class 中,将 System.out
和 System.err
替换为基于 TeeOutputStream
s 的东西将同时打印到控制台(你从 System.out 的值之前保存的)和你设置的日志文件。
像这样:
public class LogWrapper {
public static void main(String[] args) {
PrintStream out = System.out;
PrintStream err = System.err;
System.setOut(new TeePrintStream(out, new PrintStream("system.out.log")));
System.setErr(new TeePrintStream(err, new PrintStream("system.err.log")));
the.original.ClassYouWereCalling.main(args);
}
}
注意:TeePrintStream
您仍然需要做...