我刚刚尝试了我的建议,效果非常好。
首先,在 POM 中添加此依赖项:
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-loggly</artifactId>
<version>0.1.2</version>
</dependency>
然后,在你的logback.xml
配置,添加一个附加程序和一个记录器,如下所示:
<appender name="ES" class="ch.qos.logback.ext.loggly.LogglyAppender">
<endpointUrl>http://localhost:9200/tests/test?pipeline=logback</endpointUrl>
<pattern>%m</pattern>
</appender>
<logger name="es" level="INFO" additivity="false">
<appender-ref ref="ES"/>
</logger>
您还需要定义一个摄取管道,如下所示:
PUT _ingest/pipeline/logback
{
"description": "logback pipeline",
"processors": [
{
"set" : {
"field": "source",
"value": "logback"
}
}
]
}
然后,在您的代码中,您可以使用该记录器并将您拥有的任何数据发送到 ES
private Logger esLogger = LoggerFactory.getLogger("es");
...
esLogger.info("{\"message\": \"Hello World from Logback!\"}");
这个文档最终会出现在你的 ES 中:
{
"_index": "tests",
"_type": "test",
"_id": "AV3Psj5MF_PW7ho1yJhQ",
"_score": 1,
"_source": {
"source": "logback",
"message": "Hello World from Logback!",
}
}