编程语言
首页 > 编程语言> > python-Django:从批处理/ cron脚本记录

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