当前位置:  开发笔记 > 数据库 > 正文

Elasticsearch:无法导入记录器(答案适用于其他导入)

如何解决《Elasticsearch:无法导入记录器(答案适用于其他导入)》经验,为你挑选了1个好方法。

目的

使用Elasticsearch的记录器功能来更好地调试服务器端的Groovy脚本代码.

问题摘要

无法导入 org.elasticsearch.common.logging.*

细节

使用Elasticsearch 2.3

存储在/etc/elasticsearch/scriptsJava客户端中的脚本已经能够通过它成功访问它们Client.update().也就是说,文件夹位置应该是正确的.我已经看到了放置代码的建议elasticsearch/config/scripts,实际上对我不起作用)

试过这个解决方案,即:

import org.elasticsearch.common.logging.*
ESLogger logger = ESLoggerFactory.getLogger('myscript')

但Elasticsearch日志显示编译器投诉: unable to resolve class org.elasticsearch.common.logging.ESLogger

我在这里检查了GitHub上的源代码,ESLogger类就在那里.所以我不知道为什么会这样.

有没有人有关于import上班的建议?



1> Andrei Stefa..:

原因是在Elasticsearch 2.2中已启用Java安全管理器以进行脚本编写.这意味着您需要遵循规则并配置您希望脚本能够访问的类.

为了能够在脚本中进行日志记录工作,我已经定义了自己的策略文件并将其设置为JAVA_OPTS,甚至在启动命令中也是如此-Djava.security.policy=file:///D:/ES/elasticsearch-2.3.1/my.policy.文件的最小内容my.policy应为:

grant {
    permission org.elasticsearch.script.ClassPermission "org.elasticsearch.common.logging.*";
    permission org.elasticsearch.script.ClassPermission "org.apache.log4j.*";
};

当然,您需要重新启动ES才能使更改生效.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有