0

我正在使用 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 的新手。接下来我可以尝试什么?

4

0 回答 0