首先,我很抱歉我的低级英语
我创建了一个研究网站
我使用django + redis + celery
创建发送短信功能任务/ 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)
项/ 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和芹菜中不起作用
请给我一些建议,谢谢
答案 0 :(得分:0)
我猜你必须添加像 -
这样的记录器val format = new SimpleDateFormat( "yyyy-MM-dd a hh:mm:ss.SSS")
format.setLenient( false)
Try(new Timestamp(format.parse("2015-11-13 PM 06:27:26.933").getTime)) match {
case Success(t) => println(t.getTime)
case Failure(err) => println(err)
}
这里我假设您已经配置了记录器,处理程序,过滤器和格式化程序
有关详细信息,请访问URL