如何为芹菜任务日志指定文件路径?
How to specify filepath for celery task logs?
我已经使用 Django 创建了一些 REST API,我正在使用 Celery 来 运行 一些异步作业。 API 在 api.py
中定义,异步作业函数在 actions.py
中
这是我的 api.py
的样子:
from myproject import actions
def sample_api(request):
actions.sample_job.delay()
return HttpResponse('success')
这是我的 actions.py
的样子:
from celery.utils.log import get_task_logger
from celery.decorators import task
logger = get_task_logger(__name__)
@task(name="sample_job")
def sample_job():
logger.info("start operation")
<some operations>
logger.info("stop operation")
现在的问题是我不知道日志写到哪里去了。我试过在项目目录中搜索,但在任何地方都看不到它。
我想提供一个到应该写入这些日志的日志文件的路径。如何在 celery 中提供日志文件的路径?
(我知道 Whosebug 中有很多关于此的问题。但是 none 确实提到了如何为日志文件指定文件路径)
从文档中您需要指定日志文件:
-f, --logfile
Path to log file. If no logfile is specified, stderr is used.
例如:
celery -A project worker --logfile=<path>
我已经使用 Django 创建了一些 REST API,我正在使用 Celery 来 运行 一些异步作业。 API 在 api.py
中定义,异步作业函数在 actions.py
这是我的 api.py
的样子:
from myproject import actions
def sample_api(request):
actions.sample_job.delay()
return HttpResponse('success')
这是我的 actions.py
的样子:
from celery.utils.log import get_task_logger
from celery.decorators import task
logger = get_task_logger(__name__)
@task(name="sample_job")
def sample_job():
logger.info("start operation")
<some operations>
logger.info("stop operation")
现在的问题是我不知道日志写到哪里去了。我试过在项目目录中搜索,但在任何地方都看不到它。 我想提供一个到应该写入这些日志的日志文件的路径。如何在 celery 中提供日志文件的路径?
(我知道 Whosebug 中有很多关于此的问题。但是 none 确实提到了如何为日志文件指定文件路径)
从文档中您需要指定日志文件:
-f, --logfile
Path to log file. If no logfile is specified, stderr is used.
例如:
celery -A project worker --logfile=<path>