这个问题是这个4年前没有答案的问题的简单版本Django management command doesn't show logging output from python library:
我有个命令:
class Command(BaseCommand):
def handle(self, *args, **options):
...
MyParser(data)
在MyParser中:
logger = logging.getLogger(__name__)
Class MyParser:
def __init__(self, data):
logger.info('hello')
为什么在我运行命令时日志程序不显示给stdout?有打印可以,但我需要一个记录器
附言:
我试过了,但没什么改变
from parser import logger
root_logger = logger
root_logger.setLevel(logging.INFO)
MyParser(data)
我90%肯定这将是一个配置问题,而不是你使用记录器不正确。你知道吗
在我看来,Django日志文件并没有让生活变得更轻松。你知道吗
首先,将其添加到settings.py文件中,替换任何其他
LOGGING =
语句:请注意“”记录器,它用于捕获所有日志消息(而默认的只捕获来自django本身的消息)。你知道吗
如果这一点不起作用,也可以尝试在设置中设置DEBUG=True(显然不是在生产环境中)。对于为什么需要这样做,docs会说,“默认值仅在DEBUG=True时显示日志记录”。你知道吗
我将基于这样一个事实,你没有正确配置你的日志配置,这是最有可能的。默认情况下,除了
django.requests
(或者类似的内容)之外,没有任何日志记录。你知道吗如果要显示日志消息,则需要捕获消息并将其转发给相应的处理程序。你知道吗
(我无耻地在django日志中提取并剥离了这个代码块from this blog post)
相关问题 更多 >
编程相关推荐