zoukankan      html  css  js  c++  java
  • logback-kafka-appender

    logback 日志写入kafka队列

     

    logback-kafka-appender

    Logback incompatibility Warning

    Due to a bug in logback-core (LOGBACK-1158), logback-kafka-appender does not work with logback 1.1.7. This bug will be fixed in the upcoming logback 1.1.8. Until 1.1.8 is released, we recommend to use logback 1.1.6.

    Full configuration example

    Add logback-kafka-appender and logback-classic as library dependencies to your project.

    [maven pom.xml]
    <dependency>
        <groupId>com.github.danielwegener</groupId>
        <artifactId>logback-kafka-appender</artifactId>
        <version>0.1.0</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.2</version>
        <scope>runtime</scope>
    </dependency>
    // [build.sbt]
    libraryDependencies += "com.github.danielwegener" % "logback-kafka-appender" % "0.1.0"
    libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.7"

    This is an example logback.xml that uses a common PatternLayout to encode a log message as a string.

    [src/main/resources/logback.xml]
    <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">
                <!-- This is the default encoder that encodes every log message to an utf8-encoded string  -->
                <encoder class="com.github.danielwegener.logback.kafka.encoding.LayoutKafkaMessageEncoder">
                    <layout class="ch.qos.logback.classic.PatternLayout">
                        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
                    </layout>
                </encoder>
                <topic>logs</topic>
                <keyingStrategy class="com.github.danielwegener.logback.kafka.keying.RoundRobinKeyingStrategy" />
                <deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" />
    
                <!-- 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=localhost: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>
  • 相关阅读:
    JAVA基础-抽象类和接口
    JAVA基础-多态
    JAVA基础-继承机制
    C++(二十七) — 深拷贝、浅拷贝、复制构造函数举例
    C++(二十六) — 构造函数、析构函数、对象数组、复制构造函数
    C++(二十五) — 类的封装、实现、设计
    C++(二十四) — 指向字符的指针为什么可以用字符串来初始化,而不是字符地址?
    C++(二十三) — 内存泄漏及指针悬挂
    C++(二十二) — 指针变量、函数指针、void指针
    C++(二十一) — 引用概念及本质
  • 原文地址:https://www.cnblogs.com/adolfmc/p/7348240.html
Copyright © 2011-2022 走看看