【发布时间】:2017-09-12 08:58:09
【问题描述】:
首先,对不起,我的英语水平太低了
我创建了一个学习网站
我使用 django + redis + celery 创建了发送短信功能
tasks/send_buy_sms.py
from celery import Task
from items.utils import SendSMS
class SendBuyMessageTask(Task):
def run(self, buyer_nickname, buyer_phone, saler_phone, selected_bookname):
sms = SendSMS()
sms.send_sms(buyer_nickname, buyer_phone, saler_phone, selected_bookname)
items/utils.py
import os
import requests
import json
class SendSMS():
def send_sms(self, buyer_nickname, buyer_phone, saler_phone, selected_bookname):
appid = [...]
apikey = [...]
sender = '...'
receivers = [saler_phone, ]
content = '...'
url = os.environ.get("URL")
params = {
'sender': sender,
'receivers': receivers,
'content': content,
}
headers = {...}
r = '...'
return params
当我使用我的代码发送短信时,它没有问题
[2017-09-12 17:20:43,532: WARNING/Worker-6] Task success
当用户单击“发送短信按钮”时,我想制作日志文件并插入日志“成功发送短信”
wef/wef/decorators.py
from django.utils import timezone
import logging
def log_decorator(func):
logging.basicConfig(filename='../../sendsms.log', level=logging.INFO)
def wrap_func(self, *args, **kwargs):
time_stamp = timezone.localtime(timezone.now()).strftime('%Y-%m-%d %H:%M')
logging.info('[{}] success send SMS'.format(time_stamp))
print(logging)
return func(self, *args, **kwargs)
return wrap_func
但是当我点击“发送短信”按钮时任务正常,但是没有创建日志文件...
所以我想知道“问题是什么?”
我更改了我的代码create logfile -> print log
wef/wef/decorators.py
from django.utils import timezone
def log_decorator(func):
def wrap_func(self, *args, **kwargs):
time_stamp = timezone.localtime(timezone.now()).strftime('%Y-%m-%d %H:%M')
## print log
print('[{}] succes send sms'.format(timestamp))
## print log
return func(self, *args, **kwargs)
return wrap_func
当我点击“发送短信按钮”时,芹菜中的日志打印
我很困惑,因为 print() 工作但创建日志文件不起作用...
我认为我的代码(创建日志文件)没有问题,因为当我练习不使用 django、celery、redis 创建日志文件时,日志文件创建成功
相同的代码,相同的功能,但在 django 和 celery 中不起作用
请给我一些建议谢谢
【问题讨论】: