如何扩展log4j2 gelf附加程序(biz.paluch.logging)以添加自定义GelfSender

问题描述 投票:0回答:1

我在log4j2-spring.xml中配置的Spring Boot项目中有一个log4j2 gelf附加程序:

<Gelf name="graylog" host="https://example.com/gelf" version="1.1">
    <PatternLayout pattern="%logger{1.} - %msg%n"/>
    <!--- additional configuration --->
</Gelf>

gelf附加程序库是使用maven导入的:

<dependency>
    <groupId>biz.paluch.logging</groupId>
    <artifactId>logstash-gelf</artifactId>
    <version>1.14.0</version>
</dependency>

[库提供了许多GelfSenders(biz.paluch.logging.gelf.intern.GelfSender),例如GelfHTTPSender,GelfREDISSender等。如何扩展在log4j2-spring.xml中配置的gelf附加程序,以使用自定义的GelfSender。 >

我在log4j2-spring.xml中配置的Spring Boot项目中有一个log4j2 gelf附加程序: ] >

java spring-boot gelf
1个回答
0
投票

XML中的<gelf ...>附加程序标记创建biz.paluch.logging.gelf.log4j.GelfLogAppender

GelfLogAppender类使用GelfSenderFactory创建要使用的GeldSender。 GelfSenderFactory能够通过Java Service Provider接口加载GelfSenderProvider:

ServiceLoader<GelfSenderProvider> gelfSenderProvider 
    = ServiceLoader.load(GelfSenderProvider.class);
© www.soinside.com 2019 - 2024. All rights reserved.