从 Elasticsearch 脚本访问记录器

Access logger from Elasticsearch script

我积极使用脚本进行评分和汇总。我无法弄清楚的一件事是如何从脚本中发出日志。我尝试了 console.log ,但没有成功。请让我知道,如何从我的 groovy 脚本发出日志。

这可以通过访问全局 Elasticsearch 记录器实例来完成。 它的 groovy 例子如下 您应该也可以为 javascript 和其他脚本语言做类似的事情。

import  org.elasticsearch.common.logging.*; 
ESLogger logger=ESLoggerFactory.getLogger('myscript'); 
logger.info('This is a log message'); 

因此,当您进行术语聚合时,您可以执行如下操作 -

  "aggregations": {
      "debug":{
          "terms":{
              "script":"import  org.elasticsearch.common.logging.*; ESLogger logger=ESLoggerFactory.getLogger('myscript'); logger.info('This is a log message'); return doc['myField'].value;"
          }
      }
}

Elasticsearch 的一些好人针对某个问题提供了很好的文档。

LINK - https://github.com/elasticsearch/elasticsearch/issues/9068

我也举了一些例子here