首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在芹菜中运行时不存在日志文件。

在芹菜中运行时不存在日志文件。
EN

Stack Overflow用户
提问于 2017-09-12 08:58:09
回答 1查看 364关注 0票数 0

首先,我很抱歉我的英语水平很低

我创建了一个学习网站

我使用django + redis +芹菜创建发送SMS功能

tasks/send_buy_sms.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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

当用户单击“发送SMS”按钮时,我要制作日志文件并插入日志“成功发送sms”。

wef/wef/decorators.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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,log文件已经成功创建。

代码相同,特性相同,但在django和芹菜中不起作用

请给我一些建议谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 09:12:43

我猜你得加个记录器就像-

代码语言:javascript
复制
# import the logging library
import logging

# Get an instance of a logger
logger = logging.getLogger(__name__)

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')

在这里,我假设您已经配置了记录器、处理程序、筛选器和格式化器。

欲了解更多信息,请访问URL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46172102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档