我正在使用 LoggingAdapter 在 Django Web 应用程序中实现自定义日志记录:
logger=logging.getLogger("billingacct")
class LoggerAdapter(logging.LoggerAdapter):
def __init__(self, logger, prefix):
self.logger = logger
self.logger.propagate = False
super(LoggerAdapter, self).__init__(logger, {})
self.prefix=None
self.prefix = prefix
def process(self, msg, kwargs):
return '[%s] %s' % (self.prefix, msg), kwargs
我在登录方法中调用它,它是 Web 应用程序的入口点:
def login(request):
logger = LoggerAdapter(logger, email)
#After this i start printing the logs
logger.info("Test")
它与登录的用户电子邮件一起打印,如下所示:
2021-03-16 15:35:53,074 - billingacct - INFO - [user@xyz.com] Test
但是,当我退出应用程序并重新登录应用程序时,我看到相同的前缀(电子邮件)被附加了两次,或者原始前缀仍然存在,如下所示:
2021-03-16 15:44:53,074 - billingacct - INFO - [user@xyz.com][user@xyz.com] Test
这可能是因为原始 LoggingAdapter 对象仍然保留前缀,因此它被附加。我是 Python 和 Django 的新手。接下来我可以尝试什么?