无法找到记录器“elasticsearch.trace”

时间:2015-11-24 20:29:15

标签: python django pyelasticsearch

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

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

  

找不到记录器“elasticsearch.trace”

的处理程序

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

1 个答案:

答案 0 :(得分:9)

我通过显式配置elasticsearch.trace记录器的处理程序解决了这个问题,正如我在pyelasticsearch repo的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())