gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:51:56 24 4
gpt4 key购买 nike

目标

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

问题总结

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

详情

  • 使用 Elasticsearch 2.3
  • 存储在 /etc/elasticsearch/scripts 中的脚本和 Java 客户端已经能够通过 Client.update() 成功访问它们。也就是说,文件夹位置应该是正确的。我看到了将代码放在 elasticsearch/config/scripts 中的建议,这实际上对我不起作用)
  • 已尝试 this solution ,即:

    导入 org.elasticsearch.common.logging.*
    ESLogger 记录器 = ESLoggerFactory.getLogger('myscript')

    但 Elasticsearch 日志显示编译器投诉:无法解析类 org.elasticsearch.common.logging.ESLogger

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

有人对让 import 工作有什么建议吗?

最佳答案

原因是 Java Security Manager that has been enabled in Elasticsearch 2.2 for scripting .这意味着您需要遵守规则和 configure which classes you want your script to be able to access .

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

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

当然需要重启ES才能生效。

关于logging - Elasticsearch:无法导入记录器(答案适用于其他导入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36820449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com