java - Elasticsearch (Java) 禁用日志记录

标签 java elasticsearch log4j yaml

我正在尝试从 Java 中运行本地 Elasticsearch 实例,但它用各种消息向我的控制台发送垃圾邮件。这是我build设置和创建节点的代码:

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 文件并将日志记录级别设置为“错误”(根据 this question ),但这似乎没有用(除非我做错了什么)。 是否有一个简单的设置可以放入设置构建器(最好),或者我是否必须创建一个设置文件?

我在这里问这个问题的原因是因为我能找到的都是关于配置文件的人,而我更愿意将所有内容都保存在代码中。如果那不可能,请告诉我 ;)

谢谢!

最佳答案

我最后做的是这样的:

    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 文件,但是您需要零日志记录(这可能是您想要的)。

关于java - Elasticsearch (Java) 禁用日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492662/

相关文章:

elasticsearch - ElasticSearch能否返回相关段落而不是整个文档

java - Spring Boot 和 Elastic 客户端 - NoSuchMethodError : org. elasticsearch.action.support.IndicesOptions.ignoreThrottled()Z

hadoop - 如何在 Log4J 中启用调试级别日志记录(在 Hadoop 中)

java - Log4j 消息包含 (? :method:? ) 而不是类名

java - 无法使用 apache httpComponent 和 log4j2 输出日志

java - 未注释的参数会覆盖@NotNull参数

java - 无法解析 java.util.Map$Entry 类型

java - 如何使用 Apache Shiro 将哈希 pws 存储到数据库中?

spring - 在Spring Boot中结合来自Elasticsearch和PostgreSQL的两个API

java - Log4j API 中的 addAppender() 方法存在问题