到目前为止,我们像这样运行 cronjobs:
@daily do_daily_magic > log/do_daily_magic.log
到目前为止我们还没有使用django的日志配置:
https://docs.djangoproject.com/en/1.8/topics/logging/
但是我想改成默认的django方式。
如何为 django 编写将所有日志输出到标准输出的批处理脚本?
最佳答案
如果您尝试从 Django 环境外部运行 Python 脚本,则需要获取 Django 路径的源代码以获取从 Django 中利用的库和方法。这可以做到,但有点脏。
您的 python 脚本需要从 Django 获取信息,例如:
import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
你可能想关注这个:http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/
用 python 代码写日志或输出比依赖标准输出更符合 pythonic。如果您采用这种方法,那么您的 cron 条目应该是
@daily do_daily_magic 2>&1 |记录器
这将获取所有 STDOUT 和 STDERR 并将其发送到记录器以被系统日志捕获(例如/var/log/sys.log)。由于您的 python 代码会将输出定向到它自己的文件,因此从 cron 条目中出来的唯一薄薄的内容将是调试消息或未定向到日志的错误,包括 cron、权限、异常等问题,并且是正确旋转)
关于python - Django:从批处理/cron 脚本记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142724/