美文网首页
日志输出到kafka

日志输出到kafka

作者: YonchanLew | 来源:发表于2022-03-01 10:12 被阅读0次

logback

直接看文档:https://github.com/danielwegener/logback-kafka-appender

<dependency>
    <groupId>com.github.danielwegener</groupId>
    <artifactId>logback-kafka-appender</artifactId>
    <version>0.2.0</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
    <scope>runtime</scope>
</dependency>
<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>
            </encoder>
            <topic>logs</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=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>

log4j2

<!-- kafka appender 需要额外的依赖 https://logging.apache.org/log4j/2.x/runtime-dependencies.html-->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.7.2</version>
        </dependency>
<Properties>
        <!-- 日志输出格式配置 -->
<!--        <property name="kafkaPatternLayout" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />-->
        <!-- 监控预警平台Kafka ip -->
        <property name="kafkaServers" value="127.0.0.1:9092" />
</Properties>

<appenders>
<!--异步-->
        <Kafka name="Kafka" topic="xxx" syncSend="true">
<!--            <PatternLayout pattern="${kafkaPatternLayout}"/>-->
            <!--
            JsonLayout:json格式
            compact true会让消息一行,false的话是pretty。
            本来就是会带有时间戳信息的,配置includeTimeMillis可以让时间戳信息更精简。
            另外可以自己配置自定义key及value。
            -->
            <JsonLayout compact="true" includeTimeMillis="true">
                <KeyValuePair key="time" value="${date:yyyy-MM-dd'T'HH:mm:ss.SSS}"/>
            </JsonLayout>
            <Property name="bootstrap.servers">${kafkaServers}</Property>
        </Kafka>
</appenders>

<loggers>
    <Logger name="org.apache.kafka" level="info" />
    <root level="info">
        <appender-ref ref="Kafka"/>
    </root>
</loggers>

相关文章

网友评论

      本文标题:日志输出到kafka

      本文链接:https://www.haomeiwen.com/subject/oswlrrtx.html