【问题标题】:Python 2.7 Multiprocessing logging and loopsPython 2.7 多处理日志记录和循环
【发布时间】:2014-04-10 18:23:46
【问题描述】:

如何让我的两个进程登录一个唯一的文件? 使用我的代码只有 proc1 正在记录到我的日志文件... 模块.py:

import multiprocessing,logging

log = multiprocessing.log_to_stderr()
log.setLevel(logging.DEBUG)
handler = logging.FileHandler('/var/log/my.log')
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
log.addHandler(handler)

def proc1():
    log.info('Hi from proc1')
    while True:
        if something:
            log.info('something')

def proc2():
    log.info('Hi from proc2')
    while True:
        if something_more:
             log.info('something more')

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=proc1)
    p2 = multiprocessing.Process(target=proc2)
    p1.start()
    p2.start()

【问题讨论】:

    标签: python python-2.7 multiprocessing


    【解决方案1】:

    正如https://docs.python.org/2/howto/logging-cookbook.html#logging-to-a-single-file-from-multiple-processes所说的

    "虽然日志记录是线程安全的,并且从 支持单个进程中的多个线程,记录到单个进程中 不支持来自多个进程的文件"

    然后,你应该找到另一种方法来获取它,即实现一个日志服务器:

    https://docs.python.org/2/howto/logging-cookbook.html#sending-and-receiving-logging-events-across-a-network

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      相关资源
      最近更新 更多