没有为logger"elasticsearch.trace"找到处理程序

Lai*_*zer 8 python django pyelasticsearch

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


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

没有为logger"elasticsearch.trace"找到处理程序

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

Lai*_*zer 9

我通过显式配置elasticsearch.trace记录器的处理程序解决了这个问题,正如我在pyelasticsearch repo的示例中看到的那样.

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

tracer = logging.getLogger('elasticsearch.trace')
tracer.setLevel(logging.INFO)
tracer.addHandler(logging.FileHandler('/tmp/es_trace.log'))
Run Code Online (Sandbox Code Playgroud)

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

from django.utils.log import NullHandler
tracer = logging.getLogger('elasticsearch.trace')
tracer.setLevel(logging.INFO)
tracer.addHandler(NullHandler())
Run Code Online (Sandbox Code Playgroud)