系统控制的Celery Task故障和Python异常记录在哪里?

时间:2019-10-21 14:59:25

标签: python ubuntu logging celery systemd

我有一些Python任务,这些任务由Celery在Ubuntu生产服务器上使用systemd计划和执行。我知道3个日志文件:

1 Worker服务中的此项创建一个日志文件,其中列出了传入的接收任务

ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

2节拍服务中的此项将创建一个日志文件,其中列出了已调度的节拍任务

ExecStart=/bin/sh -c '${CELERY_BIN} beat  \
-A ${CELERY_APP} --pidfile=${CELERYBEAT_PID_FILE} \
-s ${CELERYBEAT_DB_FILE} \
--logfile=${CELERYBEAT_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL}'

3我有使用标准python import logging

的自定义日志记录

现在这3个文件可以正常工作。但是,如果我任务中的python代码引发异常,则无法在任何地方看到它的日志。如果我手动插入错误,例如将引发异常的非法导入,那么当我在命令行上手动运行任务时,我可以在日志(3)中看到此错误。但是,如果systemd服务启动了此异常,则无法在日志(3)中看到它。例如,即使我使强制错误任务每分钟运行一次,我也可以看到它在日志(2)中正确调度,在日志(1)中接收,然后我的代码记录到日志(3)直到遇到异常,登录日志(3)不会记录此内容。

有人知道该python异常将记录在哪里吗?而且,如果我的系统上有任何日志显示任务失败,为什么?

非常感谢,LJHW

0 个答案:

没有答案