logback接入kafka

本文详细介绍了如何使用Logback配置直接将应用程序日志发送至Kafka,避免了在代码中实现日志传输的复杂性。通过配置Logback的Kafka Appender,可以轻松实现日志的实时传输,同时提供了配置示例和必要的依赖包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想把java程序日志接入ELK,方便以后容器化管理,接入ELK有两种方式实现,第一种是在程序的地方都放置一个L(Logstash),但是这中方式不太现实,

另一种就是将日志输入kafka,有kafka传入ELK中,而将日志传入kafka,不想在代码中实现,如果logback日志可以直接输出到kafka最好,就找解决方案。

这是logback的配置文件信息:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- This is the kafkaAppender -->
    <appender name="kafkaAppender" class="com.github.danielwegener.logback.kafka.KafkaAppender">
        <encoder>
            <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
            <pattern>{"theme":"aaa","thread":"%thread","level":"%-5level","msg":"%msg"}</pattern>
        </encoder>
        <topic>test</topic>
        <keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy" />
        <deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" />

        <!-- Optional parameter to use a fixed partition -->
        <!-- <partition>0</partition> -->

        <!-- Optional parameter to include log timestamps into the kafka message -->
        <!-- <appendTimestamp>true</appendTimestamp> -->

        <!-- each <producerConfig> translates to regular kafka-client config (format: key=value) -->
        <!-- producer configs are documented here: https://kafka.apache.org/documentation.html#newproducerconfigs -->
        <!-- bootstrap.servers is the only mandatory producerConfig -->
        <producerConfig>bootstrap.servers=192.168.1.1:9092</producerConfig>

        <!-- this is the fallback appender if kafka is not available. -->
        <appender-ref ref="STDOUT" />
    </appender>

    <root level="info">
        <appender-ref ref="kafkaAppender" />
    </root>
</configuration>

然后pom.xml需要引入的jar包

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>com.github.danielwegener</groupId>
    <artifactId>logback-kafka-appender</artifactId>
    <version>0.2.0-RC1</version>
    <scope>runtime</scope>
</dependency>

有些会引入一些其他包我解释下:

logback-classic包含了logback-core,不需要再单独引用了。

logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能(用的少)。

 

 

 

 

参考资源:https://github.com/danielwegener/logback-kafka-appender

 

转载于:https://my.oschina.net/uwith/blog/2978814

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值