java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Logback日志输出到Kafka

Logback如何将日志输出到Kafka配置示例

作者:DotQin

logback是一个功能强大的Java日志框架,它是log4j的继任者,提供了丰富的功能和配置选项,本文将介绍Logback将日志输出到Kafka配置示例,感兴趣的朋友一起看看吧

1.maven依赖

<dependency>
      <groupId>com.github.danielwegener</groupId>
      <artifactId>logback-kafka-appender</artifactId>
      <version>0.2.0-RC2</version>
    </dependency>
    <dependency>
      <groupId>net.logstash.logback</groupId>
      <artifactId>logstash-logback-encoder</artifactId>
      <version>6.4</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>

2.logback-spring.xml中增加以下内容

<springProperty scope="context" name="service" source="spring.application.name" defaultValue="UnknownService"/>
    <springProperty scope="context" name="env" source="elk.env" defaultValue="test"/>
    <springProperty scope="context" name="bootstrapServers" source="elk.kafka.bootstrap.servers" defaultValue="localhost:9092"/>
    <!--以上三行需要和yml对应-->
    <appender name="kafkaAppender" class="com.github.danielwegener.logback.kafka.KafkaAppender">
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers class="net.logstash.logback.composite.loggingevent.LoggingEventJsonProviders">
                <pattern>
                    <pattern>
                        {
                        "env": "${env}",
                        "service":"${service}",
                        "date":"%d{yyyy-MM-dd HH:mm:ss.SSS}",
                        "level":"%level",
                        "thread": "%thread",
                        "logger": "%logger{36}",
                        "msg":"%msg",
                        "exception":"%exception"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
        <topic>msa-log-${env}</topic>
        <keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy"/>
        <deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy"/>
        <producerConfig>acks=0</producerConfig>
        <producerConfig>linger.ms=1000</producerConfig>
        <producerConfig>max.block.ms=0</producerConfig>
        <producerConfig>bootstrap.servers=${bootstrapServers}</producerConfig>
    </appender>
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="kafkaAppender"/>
    </appender>
    <root level="INFO">
        <appender-ref ref="ASYNC"/>
    </root>

 3.参考

https://github.com/danielwegener/logback-kafka-appender

https://github.com/danielwegener/logback-kafka-appender/blob/master/src/example/resources/logback.xml

到此这篇关于Logback如何将日志输出到Kafka配置示例的文章就介绍到这了,更多相关Logback日志输出到Kafka内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文