log4j2.xml 的 kafka appender 中的配置更改?

Posted

技术标签:

【中文标题】log4j2.xml 的 kafka appender 中的配置更改?【英文标题】:Configuration changes in kafka appender for log4j2.xml? 【发布时间】:2019-01-24 01:03:00 【问题描述】:

我正在使用 log4j2 kafka appender,log4j2.xml 看起来像

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" name="spring-boot-log-to-kafka-example" packages="com.ms.lib.infrastructure.eurekaservice">
    <Appenders>
        <Kafka name="kafkaAppender" topic="0v8uyhvb-logs">
            <JSONLayout />
            <Property name="bootstrap.servers">xyz.com:9094,xyz.com:9094,xyz.com:9094</Property>
            <Property name="security.protocol">SASL_SSL</Property>
            <Property name="sasl.mechanism">SCRAM-SHA-256</Property>
            <Property name="sasl.jaas.config">org.apache.kafka.common.security.scram.ScramLoginModule required username="uname" password="pwd-gkB8qv4P";
            </Property>
        </Kafka>

        <!--stdout/stderr included for testing Oozie log4j edits-->
        <Console name="stdout" target="SYSTEM_OUT">
            <PatternLayout pattern="%dHH:mm:ss.SSS %-5p [%-7t] %F:%L - %m%n"/>
        </Console>
        <Console name="stderr" target="SYSTEM_ERR">
            <PatternLayout pattern="%dHH:mm:ss.SSS %-5p [%-7t] %F:%L - %m%n" />
            <Filters>
                <ThresholdFilter level="WARN" onMatch="ACCEPT" />
            </Filters>
        </Console>

    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="kafkaAppender"/>

            <!--stdout/stderr included for testing Oozie log4j edits-->
            <AppenderRef ref="stdout"/>
            <AppenderRef ref="stderr"/>
        </Root>
        <Logger name="org.apache.kafka" level="warn" />
    </Loggers>
</Configuration>

我想从配置服务器读取 kafka 连接详细信息,因为我正在使用 Spring Boot 和 Spring Cloud 开发微服务。我该如何继续?

【问题讨论】:

【参考方案1】:

据我所知,您可以在 Log4J 配置中使用系统属性:$sys:some.property:https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution

我认为在引导上下文中,从配置服务器读取属性后,您可以将 Kafka 连接的属性公开到系统属性中,这将可用于下游日志配置:https://github.com/spring-cloud/spring-cloud-commons/blob/master/docs/src/main/asciidoc/spring-cloud-commons.adoc#the-bootstrap-application-context

【讨论】:

以上是关于log4j2.xml 的 kafka appender 中的配置更改?的主要内容,如果未能解决你的问题,请参考以下文章

如何在记录器 xml 标记内的 appender refs 中禁用 log4j2.xml 可加性

如何在kafka server.log文件名中包含当前日期和小时?

log4j2.xml 配置

058 kafka与log4j集成

什么相当于 log4j 2 中的 log4j 1 `log4j.appender.SYSLOG.Header=true`?

2019-07-03 log4j2 自定义ElasticSearch Appender