我有两个程序,例如程序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循环上,读取所有内容并将其显示在小部件上。
答案 0 :(得分:1)
您可以从程序B将日志写入文件,然后从程序A中读取文件并显示它们。参见fstream。还要注意,wxWidgets还提供了用于读取和写入文件的实用程序。
如果您真的想开始记录日志,可以使用log4cplus
但是,棘手的部分是当您要动态显示程序A中程序B的日志时。在这种情况下,您可以运行一些很酷的powershell功能(因为您告诉过您正在Windows上运行)。
您可以使用带有计时器的可选Get-Content logFileFromProgramB -Tail <number of lines>
做类似-Wait
的操作,以读取最新行,以跟踪已读取的行数。
请注意,您可以使用system
运行c ++的powershell命令。