简述
本文中,将使用logback为service/data提供日志功能,并提供CONSOLE,FILE,KAFKA三种日志输出方式。
源代码
环境
IDE: IntelliJ IDEA
JDK: 1.8.0_u162
Framework: spring boot, logback
Middleware: Kafka, Zookeeper
开发
配置
pom.xml
parent
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<janino.version>2.5.16</janino.version>
<kafka-logback.version>1.0.2</kafka-logback.version>
</properties>
...
<!--kafka logback-->
<dependency>
<groupId>ru.sberned</groupId>
<artifactId>kafka-logback</artifactId>
<version>${kafka-logback.version}</version>
</dependency>
<!-- Logback EvaluatorFilter 需要使用 -->
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>${janino.version}</version>
</dependency>
</dependencies>iarc-service
1
2
3
4
5
6
7
8
9
10
11<!--janino-->
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
</dependency>
<!--kafka logback-->
<dependency>
<groupId>ru.sberned</groupId>
<artifactId>kafka-logback</artifactId>
</dependency>
application.properties
1 | # kafka |
logback-spring.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
代码
- UserController
1
2
3
4
5public List<User> getAllUsers() {
logger.warn("javax.BusinessException: complex getAllUsers");
logger.warn("simple getAllUsers");
return userService.getAllUsers();
}
kafka
- 新建一个topic用于日志
1
$ opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic iarc-log
调试
启动iarc-service
访问http://localhost:8001/user/getAllUsers
,可以看到控制台显示了2条日志,而文件C:\var\log\iarc\iarc_service_data.***.log
仅显示一条,这是由于我们使用filter进行了过滤。
检查kafka日志
可以看到有2条日志显示1
2$ cd /tmp/kafka-logs/iarc-log-0
$ tail 00000000000000000000.log
kafka-manager
可按这里的步骤配置kafka-manager,便于管理kafka。
部署
部署的过程与该系列中其他文章相同,不再赘述。