美文网首页
celery 芹菜 task 中日志 log的使用 (get_t

celery 芹菜 task 中日志 log的使用 (get_t

作者: Tofookie | 来源:发表于2017-11-10 17:27 被阅读0次

    之前在celery中一直用python 自带的 logging ,需求需要按天切分日志,有点蛋疼,谁用谁知道啊,之后上网查了查,可以使用自带的get_task_logger ,话不多说来~

    # myapp/tasks.py
    from celery.utils.log import get_task_logger
     
    log = get_task_logger(__name__)
     
    @app.task
    def add(x, y):
        log.info("Calling task add(%d, %d)" % (x, y))
        return x + y
     
    @app.task
    def substract(x, y):
        log.info("Calling task substract(%d, %d)" % (x, y))
        return x - y
    

    上面这种写法所有task日志 会打到一个文件,不太好管理,最好每个task分开加载,或者使用python的装饰器实现

    日志配置

    import logging.config
    LOG_CONFIG = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'simple': {
                # 'datefmt': '%m-%d-%Y %H:%M:%S'
                'format': '%(asctime)s-%(name)s-%(levelname)s-%(filename)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'
            },
        },
        'loggers': {
             'myapp': {
                'handlers': ['celery'],
                'level': 'INFO',
                'propagate': True,
             }
        }
    }
    
    logging.config.dictConfig(LOG_CONFIG)
    

    相关文章

      网友评论

          本文标题:celery 芹菜 task 中日志 log的使用 (get_t

          本文链接:https://www.haomeiwen.com/subject/jtximxtx.html