【发布时间】:2018-07-16 19:36:55
【问题描述】:
我正在尝试创建一个监控所有线程的 Monitor 脚本或一个运行多个记录器、多个线程的大型 python 脚本。
我可以从 Monitor.py 运行子进程并转发可能包含我的线程状态的 STDOUT。但由于有几个记录器正在运行,我看到其他记录在其中..
问题:如何将主脚本作为一个单独的进程运行并获取自定义消息、线程状态而不干扰日志记录。 (将 PIPE 作为参数传递?)
Main_Script.py * 运行多个线程 * 每个线程都有单独的 Logger。
Monitor.py * 启动 Main_script.py * 监控 MainScript.py 中的每个线程(将来可能会从 Main_script 获取其他消息)
到目前为止,我尝试了子进程,来自 Multiprocessing 的进程。
子进程让我启动 Main_script 并将标准输出转发回监视器,但我看到通过同一个标准输出进入的线程日志记录。我正在使用“import logging”库将每个线程的数据记录到单独的文件中。
我尝试了 Multiprocessing 中的“process”。我不得不将 main_script.py 的主函数作为一个进程调用,并从 monitor.py 向它发送一个 PIPE 参数。现在,当我运行 top 命令时,我无法将 Main_script.py 视为一个单独的进程。
【问题讨论】:
-
问题:所有记录器都需要访问所有行还是负载平衡?
-
我认为记录器是根据关键字进行记录的……然后将它们拉入单独的文件中……