如何让django runserver向我展示DeprecationWarnings和其他有用的消息?

mem*_*elf 18 python django

我最近将我的django安装从1.2升级到1.3.在我的开发人员系统上,我没有得到任何关于已弃用的调用的警告.但是一旦我将代码移到我的生产apache服务器上,我在apache日志中看到了很多'DeprecationWarning'消息.那么我如何调用runserver来获取这些消息呢?

目前我称之为:

python manage.py runserver --verbosity 2
Run Code Online (Sandbox Code Playgroud)

chr*_*isv 27

Python 2.7默认禁用DeprecationWarning的显示

要重新启用它,请将环境变量PYTHONWARNINGS设置为"d":

export PYTHONWARNINGS="d"; ./manage.py runserver
Run Code Online (Sandbox Code Playgroud)


Chr*_*son 1

runserver 命令忽略详细选项:https ://code.djangoproject.com/ticket/15132

我建议设置一个记录器并将输出定向到 stderr: https: //docs.djangoproject.com/en/1.3/topics/logging/

例如:

import logging
logger = logging.getLogger('django')   # Django's catch-all logger
hdlr = logging.StreamHandler()   # Logs to stderr by default
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr) 
logger.setLevel(logging.WARNING)
Run Code Online (Sandbox Code Playgroud)