1. 项目目标
使用前面章节构建的Java通用日志组件完成maven
项目日志写入kafka.
2. 写入前提
- kafka已启动
如果没有kafka,可参照 kafka单机容器版本安装教程 - kafka-manager已启动
如果没有kafka-manager,可参照 kafka-manager容器版本安装教程 - Java通用日志组件已安装到本地仓库(或上传至maven私服)
若果未安装,可参照 Java通用日志组件
3. 项目构建
3.1 创建maven项目
- 主要maven依赖如下
<!-- Java通用日志组件 -->
<dependency>
<groupId>tech.nosql</groupId>
<artifactId>logback-kafka</artifactId>
<version>1.0</version>
</dependency>
<!-- 简化项目代码 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
- logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="30 second">
<!-- 指定配置文件 -->
<property resource="application.properties"/>
<include resource="logback-base.xml"/>
<logger name="org.apache.kafka" level="WARN"/>
<logger name="com.weichai" level="DEBUG"/>
</configuration>
上面的配置将Java通用日志组件
中的logback-base
.xml引入logback中作为基础配置,并设置了tech.nosql
包日志级别为debug
- application.properties
项目配置文件application.properties
(名称随便起,与logback.xml
文件中引用的一致即可)内容如下:# 是关闭控制台日志输出[true|false],默认false log.stdout.disable=false # 文件日志根路径,只要配置了根路径就会开启文件日志 # 完整路径为 ${log.base-path}/${log.kafka.system}/{yyyy-mm-dd}.log log.base-path=D://logs # 日志写入kafka的服务器地址,只要配置此属性,便会开启日志写入kafka log.kafka.bootstrap-servers=192.168.1.14:9092 # 日志写入kafka主题名 log.kafka.topic=log_kafka_dev # 应用名称,用于标识文件路径以及es中的索引名称 log.kafka.system=logback-kafka-maven-dev
- LogTask
LogTask
模拟每5秒输出一次日志,共输出10次.
package nosql.tech;
import lombok.extern.slf4j.Slf4j;
/**
* 日志输出任务
*
* @author faith.huan 2020-09-05 22:00
*/
@Slf4j
public class LogTask {
public static void main(String[] args) throws InterruptedException {
int logTimes = 10;
for (int i = 0; i < logTimes; i++) {
log.info("task-" + i);
Thread.sleep(10_000);
}
}
}
3.2 启动LogTask项目
运行LogTask
类的main方法
3.3 通过kafka-manager查看日志是否写入
-
1. 在浏览器中输入http://192.168.1.14:9000,然后点击我们配置好的
local
集群
-
2. 此时集群中已有三个Topic,点击
3
这个数字,如下图所示:
-
3. 如果发现新增了
log_kafka_dev
这个Topic,则表示日志写入成功了.
-
4. 点击
log_kafka_dev
,查看topic详细信息,此时Sum of partition offsets
为11,说明已经有11条日志写入的kafka,如下图所示
与我们在控制台中看到的输出了11条日志吻合,其中LogTask
10条,NetworkClient
1条.