我试图在Flask中的多处理类中实现日志记录,但是遇到一些错误。是否可以单独登录worker类?我只希望每个工作人员都可以登录到自己的日志文件。
最初,我尝试了以下操作,但这导致了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')
答案 0 :(得分:0)
我必须通过在run
函数中创建一个新的记录器作为局部变量来解决它。
def run(self):
logger = logging.getLogger('name')
...
我想可以在__init__
和run
中声明FileHandler并指向同一文件。