在celery中使用logging记录日志

由于项目需要日志文件的功能,又由于项目中有用到Celery模块,所以就看了看celery的用法,然后研究了一下如何在celery中记录日志。

如图:这是我的项目的目录,proj是项目名,celery.py文件是celery的一些基本配置,比如你要使用的中间件是什么,用的是哪台电脑的中间件。

比如我是用的redis,连接的是本地的服务器。

from __future__ import absolute_import, unicode_literals
from celery import Celery

app = Celery('proj',
             broker='redis://localhost',
             backend='redis://localhost',
             include=['proj.tasks'])

# Optional configuration, see the application user guide.
app.conf.update(
    result_expires=3600,
)

if __name__ == '__main__':
    app.start()

tasks.py文件就是要执行的任务

from __future__ import absolute_import, unicode_literals
from .celery import app
from celery.utils.log import get_task_logger

from proj import config

logger = get_task_logger('myapp')
@app.task
def add(x, y):
    logger.info("1111111")
    return x + y


@app.task
def mul(x, y):
    return x * y


@app.task
def xsum(numbers):
    return sum(numbers)

config.py文件就是有关日志的配置了,不懂得可以去看看这篇文章 https://blog.csdn.net/qq_27437781/article/details/81564813

具体得配置如下:

import logging.config

LOG_CONFIG = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'simple': {
            # 'datefmt': '%m-%d-%Y %H:%M:%S'
            'format': '%(asctime)s \"%(pathname)s:%(module)s:%(funcName)s:%(lineno)d\" [%(levelname)s]- %(message)s'
        }
    },
    'handlers': {
        'celery': {
            # 'level': 'INFO',
            # 'class': 'logging.handlers.RotatingFileHandler',
            'level': 'DEBUG',
            'formatter': 'simple',
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'filename': 'your_name.log',
            'when': 'midnight',
            'encoding': 'utf-8',
        },
    },
    'loggers': {
         'myapp': {
            'handlers': ['celery'],
            'level': 'INFO',
            'propagate': True,
         }
    }
}

logging.config.dictConfig(LOG_CONFIG)

然后就可以在tasks中通过 logger = get_task_logger('myapp')来获取日志记录器logger,再通过logger.info(message)往文件记录日志。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值