python-Django:从批处理/ cron脚本记录
作者:互联网
到目前为止,我们像这样运行cronjobs:
@daily do_daily_magic > log/do_daily_magic.log
到目前为止,我们不使用django的日志记录配置:
https://docs.djangoproject.com/en/1.8/topics/logging/
但是我想更改为默认的django方式.
如何为django编写批处理脚本,将所有日志输出到stdout?
解决方法:
如果您尝试从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代码编写日志或输出而不是依赖stdout更具pythonic性.如果您采用这种方法,那么您的cron条目应为
@daily do_daily_magic 2>& 1 |记录器
它将接收所有STDOUT和STDERR并将其发送到logger以被syslog捕获(例如/var/log/sys.log).由于您的python代码会将输出定向到其自己的文件,因此从cron条目中出来的唯一瘦内容将是调试消息或非定向到日志的错误,包括cron,权限,异常等问题,并且正确旋转)
标签:logging,python,django,batch-file 来源: https://codeday.me/bug/20191119/2039253.html