我试图通过首先创建 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)