小编Dan*_*pir的帖子

python 记录父子层次结构

我试图通过首先创建 Father.Child 日志,然后使用logging.getLogger() 重新调用Father log 来创建Father/Child 日志记录层次结构,但由于某种原因,我无法让它正常工作。下面是代码示例。在实际项目中,会有很多类使用“clsLogger”创建 self.logger,每个类会将日志写入所有类的同一个日志文件中。

import logging
class clsLogger():

def __init__(self,LoggerName,Child=False,LoggerFileName='QpythonLog.txt'):
    #create logger :
    self.logger = logging.getLogger(LoggerName)
    self.lvl = logging.DEBUG
    self.logger.setLevel(self.lvl)
    formatter = logging.Formatter('%(asctime)s  %(name)s  %(filename)s  %(levelname)s: %(message)s')

    #log to file :
    self.filehandler = logging.FileHandler(LoggerFileName)
    self.filehandler.setLevel = self.lvl
    self.logger.addHandler(self.filehandler)
    self.filehandler.setFormatter(formatter)

    #log to console :
    self.consoleHandler = logging.StreamHandler()
    self.consoleHandler.setLevel(self.lvl)
    self.logger.addHandler(self.consoleHandler)
    self.consoleHandler.setFormatter(formatter)


log1 = clsLogger('Father.Child')
log1 = clsLogger('Father')
log1.logger.info('log from father')
log1 = clsLogger('Father.Child')
log1.logger.info('log from child')
Run Code Online (Sandbox Code Playgroud)

输出(这是错误的)是:

2020-06-26 00:36:11,727  Father  Services_TalynM_TalynA_v2.py  INFO: log from father
2020-06-26 00:36:11,819  Father.Child …
Run Code Online (Sandbox Code Playgroud)

python logging hierarchy

1
推荐指数
1
解决办法
3560
查看次数

标签 统计

hierarchy ×1

logging ×1

python ×1