如何在Windows 7中处理大型控制台输出?

时间:2015-12-15 13:48:21

标签: java python winapi windows-7 console

我正在使用基于Java的应用程序。当它启动时,它会打开一个控制台并在那里写入它的输出。

但是,输出有时很大,不适合控制台窗口(控制台窗口最多有10000行),输出大10倍以上。

我已经尝试下载其他控制台应用程序(如con Emu),但最大行数(约32760)也太小了。

我的PC上有Ultra Edit,它可以捕获DOS命令输出,但是当我调试程序时,我无法从简单的文本编辑器对话框启动调试会话。

现在我有几个解决方案:

  • 将已在运行的进程的控制台窗口的输出重定向到我系统上的本地文件。
  • 找到另一个不受预定义值限制的控制台仿真工具。
  • 自己开发sych一个控制台仿真工具(最好用Python,Java或Visual Basic),但为了做到这一点,我需要从Windows 7 API了解如何开始这样做。

有人能让我走上正轨吗?

由于

1 个答案:

答案 0 :(得分:0)

如果它是您所说的Java应用程序,您可以将启动包装在您自己的类中,将System.outSystem.err替换为基于{{3}的内容这将打印到控制台(您从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您还必须做...