0

我遇到的是在我的日志中获得重复的条目。我环顾四周,似乎我必须'propagate': False在我已经完成的记录器配置中进行设置。但是,当我打印输出时,logger.propagate它会返回True。我什至尝试手动设置logger.propagate = False但它仍然返回True并且我在我的日志中收到重复的条目。

问题的原因可能是什么?

import logging
logger = logging.getLogger(__name__)
logger.propagate = False
class PostsListAPIView(ListAPIView):
    def get_queryset(self):
        # Getting both twice
        logger.error('Something went wrong!')  
        logger.error(logger.propagate)  # Returns True
        queryset = ...
        return queryset
 LOGGING = { 
      "version": 1,
      "disable_existing_loggers": False,
      "formatters": {
          "simple": {
              "format": "{levelname} {message}",
              "style": "{",
          }   
      },  
      "handlers": {
          "console": {
              "level": "DEBUG",
              "class": "logging.StreamHandler",
              "formatter": "simple",
          },  
      },  
      "loggers": {
          "app": {
              "level": "DEBUG",
              "handlers": ["console"],
              'propagate': False,
  
          }   
      },  
  }

我也试过设置"disable_existing_loggers": True,但没有效果。

4

1 回答 1

1

至于获取重复的日志条目,我发现原因是get_queryset方法被调用了两次,以便在BrowsableAPI启用 my 时显示表单。

但是我仍然不知道为什么要logger.propagate退货True

于 2021-05-20T10:40:41.773 回答