使用Log4j2 json配置配置Kafka Appenders

时间:2019-08-08 18:03:03

标签: json apache-kafka log4j2

我正在将log4j2与JSON属性文件一起使用,将命名为log4j2.json并尝试添加kafka附加程序。有很多使用较旧格式或xml的示例,但都难以在JSON中获得正确的格式。这很可能是一个愚蠢的问题,但是我一直在努力使它起作用,在任何地方都找不到示例。我很想放弃在json中配置log4j2并转向XML,但是我觉得这应该很简单。

这是用XML定义的示例kafka附加程序。

'<Appenders>
    <Kafka name="Kafka" topic="devglan-test">
        <PatternLayout pattern="%date %message"/>
        <Property name="bootstrap.servers">localhost:9092</Property>
    </Kafka>
    <Async name="Async">
        <AppenderRef ref="Kafka"/>
    </Async>
</Appenders>

如何
     '本地主机:9092 条目映射到JSON。

我尝试了多种样式,例如: '“ Kafka”:{                 “ name”:“ Kafka”,                 “ topic”:“ FEEDPROCESSING_Dev”,                 “ PatternLayout”:{                     “ pattern”:“%date%message”                 },         “ bootstrap.servers”:[{“名称”:“ localhost:9092”}]} }

那没有用。我也尝试过。

'"Kafka": {
            "name":"Kafka",
            "topic":"FEEDPROCESSING_SYNC_Dev",
            "PatternLayout": {
                "pattern": "%date %message"
            },
    "Property": {"bootstrap.servers":"localhost:9092"}}
}

我收到如下错误: 属性包含无效的元素或属性“ bootstrap.servers”

此配置给我错误“无法找到bootstrap.servers的插件类型”:

'"Property": {"bootstrap.servers":[{"name":"localhost:9092"}]}}},

我知道我有正确的Maven依赖项。

使用JSON和log4j2配置Kafka附加程序,特别是引导服务器属性的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

这是我认为的正确格式:

"Kafka": {
    "name": "Kafka",
    "topic": "FEEDPROCESSING_Dev",
    "PatternLayout": {
        "pattern": "%date %message"
    },
    "Property": {
        "name": "bootstrap.servers",
        "value": "localhost:9092"
    }
}