我已经在我的tasks.py
芹菜记录从Django的内部文件中的模块
from celery.utils.log import get_task_logger
logger = get_task_logger("celery.task")
我有安装记录在我的settings.py
和所有日志以下为celery.task
从我tasks.py
文件是否正确记录到文件中。
我有Django模块。这些模块可以直接从Django或Celery任务中调用。我想要的是,如果模块由Django调用,那么日志应该转到Django日志文件。如果模块被任务调用,日志应该转到芹菜任务记录器。
例子:
# tasks.py
from app.foo import MyFoo
@task(name="bar")
def boo():
MyFoo.someFoo()
# app.foo.py
log = logging.getLogger(__name__)
我想里面MyFoo日志消息时由作业人员执行任务去芹菜日志。
任何想法?
谢谢,这将让我知道该任务是否被工人或无法运行。这不是我需要的。我已经更新了这个问题。 – ATOzTOA
这可能是你需要的。因为在进入函数之前,您无法知道您是在Clery内还是在Django内部运行。因此,这是您可以选择本地使用哪种记录器时唯一的一点。 –
但是我建议你研究如何配置Celery记录器。由于Celery工作人员在单独的进程上运行,因此它有自己的配置文件,您可以在其中配置Python日志记录处理程序。 http://docs.python.org/2/library/logging.html#handler-objects –