Django 管理命令不显示我的库的日志

Ben*_*min 4 python django django-commands

这个问题是这个 4 年前问题的简单版本,没有答案Django 管理命令不显示 python 库的日志输出

我有一个命令:

class Command(BaseCommand):
  def handle(self, *args, **options):
  ...
  MyParser(data)
Run Code Online (Sandbox Code Playgroud)

在 MyParser 中:

logger = logging.getLogger(__name__)

Class MyParser:
   def __init__(self, data):
       logger.info('hello')
Run Code Online (Sandbox Code Playgroud)

为什么当我运行命令时记录器不显示到标准输出?打印没问题,但我需要一个记录器

附:

我尝试过,但它没有改变任何东西

from parser import logger
root_logger = logger
root_logger.setLevel(logging.INFO)
MyParser(data)
Run Code Online (Sandbox Code Playgroud)

Won*_*alb 6

我将基于这样一个事实:您没有正确配置最有可能的日志配置。默认情况下,除了django.requests(或类似的东西。

如果您希望显示日志消息,则需要一些东西来捕获消息并将其转发到适当的处理程序。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'console': {
            'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'formatter': 'console',
        },
    },
    'loggers': {
        '': {
            'level': 'INFO',
            'handlers': ['console'],
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

(我无耻地从这篇关于 django 日志记录的博客文章中提取并删除了这个代码块)