从零构建ELK日志分析平台:Java通用日志组件

tech2024-12-16  4

项目目标

构建一个通用的Java日志组件,完成sl4j日志写入kafka,项目github地址

项目介绍

核心maven依赖

logstash-logback-encoder<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.11</version> </dependency> 完成日志信息序列化为json,方便logstash进行解析.logback-kafka-appender<dependency> <groupId>com.github.danielwegener</groupId> <artifactId>logback-kafka-appender</artifactId> <version>0.1.0</version> </dependency> 将logstash-logback-encoder序列化成json后的日志发送到kafkajanino<dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.0.6</version> </dependency> 用于支持logback.xml中进行表达式逻辑计算

logback-boot.xml

logback-boot.xml用于支撑springboot项目进行快速日志配置.

kafkaAppender重要配置

标签值用途includeMdcKeyNameTID包含mdc中的设置的TID信息,用于进行一次请求或一个小任务追踪.customFieldssystem自定义system字段,用于区分不同系统的日志keyingStrategyHostNameKeyingStrategy主机名策略,保证一个主机的日志写入一个kafka分区,保证日志顺序

logback-base.xml

logback-base.xml用于支撑非springboot项目进行快速日志配置.

项目主要控制参数

log.stdout.disable=true 是关闭控制台日志输出[true|false],默认false

log.base-path=D://logs 文件日志根路径,只要配置了根路径就会开启文件日志. 完整路径为 l o g . b a s e − p a t h / {log.base-path}/ log.basepath/{log.kafka.system}/{yyyy-mm-dd}.log

log.kafka.bootstrap-servers=192.168.1.14:9092 日志写入kafka的服务器地址,只要配置此属性,便会开启日志写入kafka

log.kafka.topic=log_kafka_dev 日志写入kafka主题名

log.kafka.system=logback-kafka-demo 应用名称,用于标识文件路径以及es中的索引名称

最新回复(0)