找不到记录器 "elasticsearch.trace" 的处理程序

No handlers could be found for logger "elasticsearch.trace"

更新: 事实证明,这不是 cron 的功能。 运行从命令行运行脚本时,如果它实际上有一个记录要处理并与 ElasticSearch 通信,我会得到相同的行为。


我有一个 cron 作业 运行 是一个 python 脚本,它使用 pyelasticsearch 为 ElasticSearch 实例中的一些文档编制索引。该脚本在命令行中运行良好,但是当通过 cron 运行 时,它会导致此错误:

No handlers could be found for logger "elasticsearch.trace"

显然有一些日志记录配置问题只会在 运行 在 cron 下出现,但我不清楚它是什么。有什么见解吗?

我通过为 elasticsearch.trace 记录器显式配置处理程序解决了这个问题,正如我在 pyelasticsearch 存储库 examples 中看到的那样。

导入 pyelasticsearch 后,像这样设置一个处理程序:

tracer = logging.getLogger('elasticsearch.trace')
tracer.setLevel(logging.INFO)
tracer.addHandler(logging.FileHandler('/tmp/es_trace.log'))

我对保留跟踪日志不感兴趣,所以我使用了近在手边的 Django NullHandler

from django.utils.log import NullHandler
tracer = logging.getLogger('elasticsearch.trace')
tracer.setLevel(logging.INFO)
tracer.addHandler(NullHandler())