如何将 java 程序 (log4j2) 中的日志索引到 elasticsearch

How to index logs from java program (log4j2) into elasticsearch

如何将日志直接从 log4j2 索引到 elasticsearch 索引中?

Main.class:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Main {
    private static final Logger logger = LogManager.getLogger(Main.class);
    public static void main(String... args) {
        logger.info("This is an info message.");
        logger.error("This is an error message");
    }
}

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%m%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="STDOUT" level="trace"/>
        </Root>
    </Loggers>
</Configuration>

我想知道是否有一种方法可以通过向记录器添加依赖项和附加程序来将日志直接注入到 elasticsearch 中。

您可以使用我的插件:https://github.com/rfoltyns/log4j2-elasticsearch。它正是您所需要的。

一定要配置 IndexTemplate 并使用 log4j2-*:(,2.10] 来避免 https://github.com/rfoltyns/log4j2-elasticsearch/issues/9。我会尽快发布修复程序。