家具营销型网站模板,住房和城乡建设部网站行标,如何制造一个网站,东莞关键词优化软件前言
log4j2 在 2.11.0 之后的版本#xff0c;已经内置了 KafkaAppender 支持可以将打印的日志直接发送到 kafka 中#xff0c;在这之前如果想要集中收集应用的日志#xff0c;就需要自定义一个 Layout 来实现#xff0c;相对来说还是比较麻烦的。
官网文档#xff1a;L…前言
log4j2 在 2.11.0 之后的版本已经内置了 KafkaAppender 支持可以将打印的日志直接发送到 kafka 中在这之前如果想要集中收集应用的日志就需要自定义一个 Layout 来实现相对来说还是比较麻烦的。
官网文档Log4j – Log4j 2 Appenders
依赖 !-- kafka client --dependencygroupIdorg.apache.kafka/groupIdartifactIdkafka-clients/artifactIdversion2.0.0/version/dependency!-- 支持 scala --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api-scala_2.12/artifactIdversion11.0/version/dependency!-- 核心依赖 --dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion2.20.0/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.20.0/version/dependency
配置
注意这里有个 syncSend 控制着是否异步发送false 使用异步发送也就是会攒小批发送拥有更高的吞吐量但相对来说延迟也会增加建议生产环境开启本地环境关闭否则可能会出现程序结束了直接退出导致 kafka 的批攒的数据没有来得及发送自然也会导致数据丢失。 此外如果不想每个类的日志都采集到 kafaka 里面我们可以定义个类通过这个类发送的日志才收集到 kafka 里面可以参考下面的配置例子。
?xml version1.0 encodingUTF-8?
Configuration statusINFOPropertiesProperty namekafkaServerslocalhost:9092/Property/PropertiesAppenders!-- 定义 Kafka Appender --Kafka nameKafkaAppender syncSendfalse topicrecomm-system-logPatternLayout pattern%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n /!-- 在此处配置 Kafka 的连接信息 --Property namebootstrap.servers${kafkaServers}/Property/KafkaConsole nameConsoleAppender targetSYSTEM_OUTPatternLayout pattern%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n //Console/AppendersLoggersRoot levelinfo!-- 将日志记录到控制台 Appender --AppenderRef refConsoleAppender //RootLogger namelog2kafka.KafkaSender$Appender-ref refKafkaAppender//Logger/Loggers
/Configuration例子
这里用的是 scala如果是 java 基本大同小异
package log2kafka
import org.apache.logging.log4j.scala.Loggingobject KafkaSender extends Logging {def send(msg:Any): Unit {logger.info(msg.toString)}def main(args: Array[String]): Unit {logger.info(print msg to kafka)}} kafka 命令行查看数据
(base) ➜ temp kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testlog
2023-08-30 19:42:05 INFO KafkaSender$:12 - print msg to kafka