mac*_*ler 5 python logging os-dependent multiprocessing
在这个问题和答案之后,我正在寻找以下问题的解决方案:
我有一个 Python 程序,应该可以在 Windows 和 Linux 上运行。
我的 python 进程生成一个子进程,它们都应该有一个文件记录器。我希望他们每个人都登录到自己的日志文件中。
流程创建:
import multiprocessing
multiprocessing.Process(target=my_target, args=(my_args,))
Run Code Online (Sandbox Code Playgroud)
日志创建:
import logging
logger = logging.getLogger()
fh = logging.FileHandler(log_file, mode="a+")
logger.addHandler(fh)
Run Code Online (Sandbox Code Playgroud)
在 Windows 中它工作得很好,但在 Linux 中我将子输出写入子日志和父日志中。
处理这种情况的最佳方法是什么?
在 chilld 开始执行时添加以下代码来解决该问题:
log = logging.getLogger()
# Remove any existing handlers
for handler in log.handlers:
log.removeHandler(handler)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |