如何显示另一个程序的日志?

时间:2018-10-20 07:01:16

标签: c++ windows

我有两个程序,例如程序A和程序B,程序A是GUI应用程序,程序B是控制台应用程序,但是它的控制台是隐藏的。

那么,如何在程序A的UI组件上显示程序B创建的日志?或者,让我改写一下,程序A如何显示程序B生成的日志?

通过“日志”,我的意思是这样的:

if (!foobar()){
    printf("INFO: foobar Failed! Exiting....");  // <-- Some Logs like this, I want it to be shown on Program A's UI component
}

我在GUI程序上使用wxWidgets(C ++)。我在Windows上。

编辑:解决方案

对于我的应用程序,它工作正常:

1)只需在文本文件上进行简单登录即可。

2)在GUI上打开文本文件

3)在while循环上,读取所有内容并将其显示在小部件上。

1 个答案:

答案 0 :(得分:1)

您可以从程序B将日志写入文件,然后从程序A中读取文件并显示它们。参见fstream。还要注意,wxWidgets还提供了用于读取和写入文件的实用程序。

如果您真的想开始记录日志,可以使用log4cplus

但是,棘手的部分是当您要动态显示程序A中程序B的日志时。在这种情况下,您可以运行一些很酷的powershell功能(因为您告诉过您正在Windows上运行)。

您可以使用带有计时器的可选Get-Content logFileFromProgramB -Tail <number of lines>做类似-Wait的操作,以读取最新行,以跟踪已读取的行数。

请注意,您可以使用system运行c ++的powershell命令。