Django管理命令不显示python库的日志输出

2024-03-28 10:14:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个python模块,我正在我的django应用程序中使用它,这样它就可以通用化了。我有一个django mangement函数来调用这个库。在

在库中,我尝试使用正确的python日志记录。我编写了一个简单的命令行程序,它调用库并将日志数据转储到stdout,这很有效。但是,当从django管理命令调用这个库时,django管理命令有日志输出,但是库没有日志输出。就好像库中没有日志记录调用一样。在

我希望库和django管理命令的日志输出出现在stdout上。好像我刚刚在django管理命令和库中都使用了print。在

在django管理命令中,我调用此命令,以便所有日志输出都发送到终端。我希望将这个django管理命令和库的输出记录到终端。在

import logging
logger = logging.getLogger(__name__)

class Command(BaseCommand):
    def handle(self, *args, **options):
        # ...
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
        ch.setFormatter(formatter)
        logger.addHandler(ch)
        logger.setLevel(logging.DEBUG)

在库中,我也在文件的根目录下执行logger = logging.getLogger(__name__)"。在

我刚开始使用python日志框架(通常我只是print;),所以我可能犯了一个简单的错误,或者要求一些根本不可能的事情。这是Django 1.6.5和python 2.7.6。我的python库是纯python,是单线程的,非常简单。在


Tags: 模块djangonamedebug命令终端formatterlogging