python中的动态类对象日志记录

时间:2020-04-10 15:08:14

标签: python class logging

我正在使用记录conf文件。试图为每个用户获取不同的文件。它工作正常,使用传入的用户名创建文件。但是,当我尝试通过以下方式为每个用户创建日志入口时: 'user1.logging.info(...)'和'user2.logging.info(...)',两个入口都进入到user2的日志文件中。为什么?

logging.conf文件:

[loggers]
keys = root, user

[handlers]
keys = consoleHandler, userFileHandler

[formatters]
keys = Formatter

[logger_root]
level = DEBUG
handlers = consoleHandler

[logger_user]
level = DEBUG
handlers = consoleHandler, userFileHandler
qualname = user
propagate = 0

[handler_consoleHandler]
class = StreamHandler
level = DEBUG
formatter = Formatter
args = (sys.stdout,)

[handler_userFileHandler]
class = FileHandler
level = DEBUG
formatter = Formatter
args = ('%(logfilename)s', 'a+')

[formatter_Formatter]
format = %(asctime)s [%(funcName)s] [%(levelname)s] %(message)s
datefmt = %Y-%m-%d %H:%M:%S

班级:

class User:
    """" Users instantiation class """
    def __init__(self, email, password):
        self.email = email
        self.password = password
        self.logger = self.Logger()

    def __repr__(self):
        return '{}'.format(self.email)

    def Logger(self):
        """ Users loggers instantiation """
        logging.config.fileConfig('log/logging.conf', defaults={'logfilename': 'log/{}.log'.format(self.email)})
        logger = logging.getLogger('user')
        logger.info('info log for: {}'.format(self.email)) # That entrance works fine
        return logger

0 个答案:

没有答案
相关问题