将所有celery任务的日志消息发送到单个文件中
||
我想知道如何设置更具体的日志记录系统。我所有的任务都使用
logger = logging.getLogger(__name__)
作为模块范围的记录器。
我希望celery登录到“ celeryd.log”,而我的任务登录到“ tasks.log \”,但是我不知道如何使它工作。使用django-celery中的CELERYD_LOG_FILE
,可以将所有与celeryd相关的日志消息路由到celeryd.log,但是没有跟踪在我的任务中创建的日志消息。
没有找到相关结果
已邀请:
3 个回复
味芯憨
来设置每个任务记录器。有关详细信息,请参见“ Celery 3.0的新增功能”的“日志记录”部分。 Celery为每个任务提供了专门的日志记录支持。请参阅有关此主题的任务文档: 您可以使用工作日志记录器将诊断输出添加到工作日志:
有多个日志记录级别可用,并且工作程序日志级别设置决定 是否将它们写入日志文件。 当然,您也可以简单地使用print,因为任何写入标准out / -err的内容都会 也写入日志文件。 在后台,这仍然是标准的python日志记录模块。您可以将“ 4”选项设置为“ False”以允许您自己的日志记录设置起作用,否则Celery将为您配置处理方式。 但是,对于任务,使用
调用确实可以为每个任务设置单独的日志文件。只需传入
参数,它将日志消息路由到该单独的文件:
最后但并非最不重要的一点是,您可以在python日志记录模块中配置顶级程序包,并为其提供自己的文件处理程序。我将使用
信号进行设置;在这里,我假设您所有的模块都生活在名为
的软件包中(如
和package11ѭ):
现在,任何名称以ѭ9开头的记录器都会将其所有消息发送到
,而不是发送到根记录器(由于
为False,因此看不到任何这些消息)。
场竟矩喘崩
同样,Celery记录任务的所有输出。 Celery docs上有关任务记录的更多详细信息
财沟项胶
与命令来运行芹菜工人 例如:
更好地也在每个python文件中设置日志级别