我正在尝试从Java内部运行本地Elasticsearch实例,但它在控制台中发送了各种各样的消息。这是我的代码,用于构建设置和创建节点:
Settings settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "localcluster")
//Paths
.put("path.data", "ESConsole/data")
.put("path.logs", "ESConsole/logs")
.put("path.work", "ESConsole/work")
.put("path.plugins", "ESConsole/plugins")
.put("path.conf", "ESConsole/config")
//Make the node unreachable from the outside
.put("discovery.zen.ping.multicast.enabled", false)
.put("node.local", true)
.put("http.enabled", false)
.build();
this.node = NodeBuilder.nodeBuilder().settings(settings).node();
我尝试创建logger.yml和log4j.properties文件并将日志记录级别设置为“ ERROR”(根据此问题),但这似乎没有用(除非我做错了什么)。是否有一个我可以放入设置构建器中的简单设置(最好是),还是必须创建一个设置文件?
我在这里问这个问题的原因是,我能找到的只是那些对配置文件说了些什么的人,而我希望将所有内容保留在代码中。如果那不可能,请让我知道;)
谢谢!
我最终要做的是:
Settings settings = settingsBuilder()
.put("http.enabled", false)
.put("network.host", "127.0.0.1")
.put("cluster.name", "my_cluster_name")
.put("node.name", "my_node_name")
.put("path.home", HOME.getAbsolutePath())
.put("path.conf", CONFIG.getAbsolutePath())
.put("path.logs", LOGS.getAbsolutePath())
.build();
// make sure ES' logging system knows where to find our custom logging.xml
LogConfigurator.configure(settings);
// startup a standalone node to use for tests
return nodeBuilder()
.settings(settings)
.local(true)
.loadConfigSettings(false)
.node();
这里的关键是LogConfigurator.configure()
电话。请注意,我确实必须将自定义logging.yml
文件复制到path.logs
仅禁用控制台记录器的目录中。
我怀疑设置是否包含logger.level = OFF
,那么您根本不需要自定义logging.yml
文件,但是日志记录为零(可能就是您想要的)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句