方式一:
引用github上的kafkaAppender项目。
在default.xml引入以下:
<appender name="KAFKA" class="com.github.danielwegener.logback.kafka.KafkaAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${ELK_LOG_PATTERN}</pattern>
</encoder>
<topic>kafka</topic>
<keyingStrategy class="com.github.danielwegener.logback.kafka.keying.NoKeyKeyingStrategy" />
<deliveryStrategy class="com.github.danielwegener.logback.kafka.delivery.AsynchronousDeliveryStrategy" />
<producerConfig>bootstrap.servers=192.168.1.123:9092</producerConfig>
</appender>
<!--异步写入kafka,尽量不占用主程序的资源-->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<neverBlock>true</neverBlock>
<includeCallerData>true</includeCallerData>
<discardingThreshold>0</discardingThreshold>
<queueSize>2048</queueSize>
<appender-ref ref="KAFKA" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC"/>
<appender-ref ref="CONSOLE"/>
</root>
方式二:
自定义Appender。和上面原理一样,改一改KakaAppender.java类
网友评论