2015-01-16 22 views
7

Scriptleri puanlama ve toplama için agresif olarak kullanıyorum. Anlayamadığım bir şey, günlükleri komut dosyasından nasıl yayınlayacağınızdır. Console.log çalıştı, ama sonra işe yaramadı. Lütfen bana, groovy betiğimde günlükleri nasıl gönderebileceğimi bildirin.Access logger Elasticsearch komut dosyasından

cevap

9

Bu, global Elasticsearch logger örneğine erişerek yapılabilir. Yüce örneği aşağıda verilmiştir. Javascript ve diğer betik dilleri için de benzer bir şey yapabilmeniz gerekir. Bir terimler toplamını yaptığınızda

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

Yani, aşağıda gibi bir şey yapabilirsiniz -

"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 bazı iyi millet konuda karşı Üzerinde iyi bir dokümantasyon verdi.

LINK - Ayrıca bazı örnekler here verdik https://github.com/elasticsearch/elasticsearch/issues/9068

.

+2

Elasticsearch 2.2 veya daha yenisini kullananlar için, sınıfların içe aktarılmasına özellikle izin vermeniz gerekir. Http://stackoverflow.com/questions/36820449/elasticsearch-unable-to-import-logger adresine bakın. – Aaron

İlgili konular