python中logging多进程
时间: 2023-12-20 11:32:26 浏览: 137
在Python中,logging模块可以在多进程环境下安全地输出日志。下面是一个示例代码,演示了如何在多进程中使用logging模块:
```python
import logging
import multiprocessing
def worker():
# 配置日志输出格式
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(processName)s - %(levelname)s - %(message)s')
# 输出日志
logging.info('This is a log message from process {}'.format(multiprocessing.current_process().name))
if __name__ == '__main__':
# 创建多个进程
processes = []
for i in range(5):
p = multiprocessing.Process(target=worker)
processes.append(p)
p.start()
# 等待所有进程结束
for p in processes:
p.join()
```
上述代码中,首先通过`logging.basicConfig()`函数配置了日志输出的级别和格式。然后,在`worker()`函数中,使用`logging.info()`函数输出日志信息。每个进程都会输出自己的进程名和日志信息。
需要注意的是,在多进程环境下,为了避免多个进程同时写入同一个日志文件导致冲突,可以使用`logging.handlers.RotatingFileHandler`或`logging.handlers.TimedRotatingFileHandler`来安全地切分日志文件。
阅读全文