我想通过log4j记录STORM日志,并将日志发送到kafka。结果是kafka STORM可以自己log4j记录日志,但不能发送日志给kafka

I want to record STORM log by log4j and send log to kafka. the result is kafka STORM can record log by itself log4j but not send log to kafka

我用的是ubuntu14.6,kafka_2.11-2.20,zookeeper-3.4.14,storm-1.2.3.when我用的是LocalCluster模式可以把日志发到kafka,我可以通过kafka消费者获取日志。但我倾向于通过集群模式提交拓扑,它无法通过 kafka 消费者获取日志。 这是我的 log4j 配置

<configuration status="INFO">
    <appenders>
        <Kafka name="kafkaLog" topic="connect-test" ignoreExceptions="false">
        <PatternLayout pattern="%m%n" />
                <Property name="bootstrap.servers">192.168.23.165:9092</Property>
                <Property name="max.block.ms">2000</Property>
        </Kafka>

    </appenders>

    <loggers>
        <logger level = "info" name= "BasicDemo" additivity="false">>
            <appender-ref ref="kafkaLog"/>
        </logger>
        <root level="info">
            <appender-ref ref="kafkaLog"/>
        </root>
        <logger name="org.apache.kafka" level="INFO"/>
    </loggers>
</configuration>

有一个问题log4j可以发送分布式系统日志到kafka吗?

我不认为这个问题真的与 Storm 有任何关系。我也不认为问题出在 log4j 上。您可能需要检查您的分布式工作机器是否可以实际连接到 Kafka。

另外请记住,您需要将 log4j 配置放在 storm/log4j2/worker.xml.