Python 烧瓶里的芹菜原木在哪里?

Python 烧瓶里的芹菜原木在哪里?,python,flask,celery,Python,Flask,Celery,我正在开发一个简单的web应用程序,它运行一个python脚本,大约需要5-10分钟。我没有让用户在站点上等待,而是使用芹菜在后台运行作业,并在脚本完成时向用户发送电子邮件通知 我的问题很简单:芹菜的原木在哪里?目前,如果作业因为遇到致命错误而失败,我无法知道 这本书展示了如何设置日志,但我并不完全清楚在作业完成后在哪里可以访问日志(我想另存为文件) app.py #-----------------------------------------------------------------

我正在开发一个简单的web应用程序,它运行一个python脚本,大约需要5-10分钟。我没有让用户在站点上等待,而是使用芹菜在后台运行作业,并在脚本完成时向用户发送电子邮件通知

我的问题很简单:芹菜的原木在哪里?目前,如果作业因为遇到致命错误而失败,我无法知道

这本书展示了如何设置日志,但我并不完全清楚在作业完成后在哪里可以访问日志(我想另存为文件)

app.py

#----------------------------------------------------------------------------#
# Imports
#----------------------------------------------------------------------------#

from flask import Flask, render_template, request, flash, send_file, redirect, url_for    
from werkzeug import secure_filename
import logging
from logging import Formatter, FileHandler
from forms import *

import my_module
from tasks import make_celery
from celery.utils.log import get_task_logger


#----------------------------------------------------------------------------#
# App Config.
#----------------------------------------------------------------------------#

app = Flask(__name__)
app.config.from_object('config')

celery = make_celery(app)
logger = get_task_logger(__name__)

format = "%(asctime)s - [%(levelname)s] %(message)s"
logging.basicConfig(filename='app-errors.log', 
                    filemode='a',
                    format=format,
                    level=logging.DEBUG)
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
logging.getLogger(__name__).addHandler(console)

#----------------------------------------------------------------------------#
# Controllers.
#----------------------------------------------------------------------------#

@celery.task
def background_task(formdict):
    logger.debug('starting work...')
    result = my_module.main(formdict)
    return result

@app.route('/', methods=('GET', 'POST'))
def index():
    form = MyForm()
    if form.validate_on_submit():
        task = background_task.delay(form.data)

        return redirect(url_for('jobcomplete'))
    else:
        print form.errors
        filename = None
    return render_template('pages/home.html', form=form)

引用:“Celery使用标准Python logger库,日志模块中可以找到该库的文档。”您应该继续阅读该库以配置日志记录。您如何运行Celery worker?日志是如何配置的?@blahblahblah如果您找到了答案,请告诉我。我希望在Kibana上发送此日志,因此希望发送到标准输出流。