项目目标
构建一个通用的Java日志组件,完成sl4j
日志写入kafka,项目github地址
项目介绍
核心maven依赖
- logstash-logback-encoder
完成日志信息序列化为json,方便logstash进行解析.<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.11</version> </dependency>
- logback-kafka-appender
将<dependency> <groupId>com.github.danielwegener</groupId> <artifactId>logback-kafka-appender</artifactId> <version>0.1.0</version> </dependency>
logstash-logback-encoder
序列化成json后的日志发送到kafka - janino
用于支持logback.xml中进行表达式逻辑计算<dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.0.6</version> </dependency>
logback-boot.xml
logback-boot.xml
用于支撑springboot
项目进行快速日志配置.
-
kafkaAppender重要配置
标签 值 用途 includeMdcKeyName TID 包含mdc中的设置的TID信息,用于进行一次请求或一个小任务追踪. customFields system 自定义system字段,用于区分不同系统的日志 keyingStrategy HostNameKeyingStrategy 主机名策略,保证一个主机的日志写入一个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.base−path/{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中的索引名称