我已经编写了一个我在django应用程序中使用的python模块,因此可以进行推广。我有一个调用这个库的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并且是单线程的,它非常简单。