将日志信息从Python代码发送到C#GUI

时间:2013-08-23 01:57:26

标签: c# python user-interface

我正在编辑一个程序,在C#中创建GUI,然后在Python中运行该过程。目前,Python正在执行以下操作:

SetupLog()
log = logging.getLogger()
log.info()

跟踪流程中的事件。有没有办法将这些信息发送回C#GUI?

我也在尝试在C#GUI中创建一个取消按钮,它会在退出/取消时终止Python模块,并且想知道是否有比基于进程ID更好的方法吗?

1 个答案:

答案 0 :(得分:1)

可能,但这确实不是最好的做事方式。

除非SetupLog函数禁用它,否则Python的默认日志记录会将日志消息打印到其stderr。

在C#中运行进程有多种方法;如果您正在使用System.Diagnostics.Process来执行此操作,则只需将ProcessStartInfo.RedirectStandardError属性设置为true,然后启动该过程,然后从其StandardError流中读取。事实上,如果您查看MSDN文档,那么sample docs可以完全满足您的需求。


logging模块将添加日志标头信息,您必须在C#代码中解析这些信息,这是一种浪费。当然,这意味着除了与父母的沟通外,你不能将logging用于其他任何事情。

如果您正在编写Python代码和C#代码,那么使用显式匿名管道(或套接字,或命名管道,或......)并让双方都知道他们正在谈话会更加清晰相互之间,而不是试图诱骗他们这样做。