在使用 Django 的控制台脚本中记录到 stderr
Logging to stderr in Console Scripts which use Django
配置日志记录可以很好地处理 Web 请求。
但是如何为从 unix shell 或通过 cron 调用的 运行 控制台脚本配置日志记录?
对于那些脚本,我希望所有日志记录都到达 stderr。
我在文档中找不到解决方法:
https://docs.djangoproject.com/en/1.7/topics/logging/#configuring-logging
在settings.py
'handlers': {
'stream_to_console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler'
},
},
'loggers': {
'myproject': {
'handlers': ['stream_to_console'],
'level' : 'DEBUG',
},
在你的management/commands/my_command.py
import logging
logger = logging.getLogger('myproject')
class Command(NoArgsCommand):
...
def handle_noargs(self, **options):
logger.warn("In management command")
当你 运行 ./manage.py my_command
时,它会输出警告到 stderr
配置日志记录可以很好地处理 Web 请求。
但是如何为从 unix shell 或通过 cron 调用的 运行 控制台脚本配置日志记录?
对于那些脚本,我希望所有日志记录都到达 stderr。
我在文档中找不到解决方法:
https://docs.djangoproject.com/en/1.7/topics/logging/#configuring-logging
在settings.py
'handlers': {
'stream_to_console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler'
},
},
'loggers': {
'myproject': {
'handlers': ['stream_to_console'],
'level' : 'DEBUG',
},
在你的management/commands/my_command.py
import logging
logger = logging.getLogger('myproject')
class Command(NoArgsCommand):
...
def handle_noargs(self, **options):
logger.warn("In management command")
当你 运行 ./manage.py my_command
时,它会输出警告到 stderr