【发布时间】:2018-07-31 08:18:30
【问题描述】:
我正在尝试在 Flask 中的多处理类中实现日志记录,但遇到了一些错误。是否可以单独登录工人阶级?我只希望每个工作人员都登录到自己的日志文件。
最初我尝试使用以下方法,但这导致TypeError: Object of type 'TypeError' is not JSON serializable
from multiprocessing import Process
import logging
class Worker(Process):
def __init__(self, a, lock, pipe):
self.a = a
...
self.logger = logging.getLogger('Task Specific Name')
因此,我尝试不将其声明为类变量,但正如预期的那样,它没有传递给运行,也没有打印 TEST2。
class Worker(Process):
def __init__(self, a, lock, pipe):
self.a = a
...
logger = logging.getLogger('Task Specific Name')
logger.setLevel...
logger.setHandlr...
logger.info('TEST1')
def run(self):
logger.info('TEST2')
【问题讨论】:
-
每个记录器都可以有自己的 StreamHandler 实例,输出到不同的文件。
-
问题源于在模块级别声明记录器
self.logger = logging.getLogger。
标签: python logging multiprocessing