发布时间:2022-10-07 15:00
目录
前言
日志记录概念
记录器
日志级别
附加器
了解默认日志记录配置
配置日志记录
通过配置记录器设置日志记录级别
使用 Kafka Connect REST API 动态设置日志记录级别
使用映射的诊断上下文设置日志记录级别
在Debezium 容器镜像中配置日志级别
Debezium 在其连接器中内置了广泛的日志记录,您可以更改日志记录配置以控制这些日志语句中的哪些出现在日志中以及这些日志的发送位置。Debezium(以及 Kafka、Kafka Connect 和 Zookeeper)使用 Java 的Log4j日志框架。
默认情况下,连接器在启动时会产生大量有用的信息,但在连接器与源数据库保持同步时会产生很少的日志。当连接器正常运行时,这通常就足够了,但当连接器出现意外行为时,这可能就不够了。在这种情况下,您可以更改日志记录级别,以便连接器生成更详细的日志消息,描述连接器正在做什么和没有做什么。
在配置日志记录之前,您应该了解 Log4J记录器、日志级别和附加程序是什么。
应用程序生成的每条日志消息都会发送到特定的记录器 (例如io.debezium.connector.mysql
)。记录器按层次结构排列。例如,io.debezium.connector.mysql
记录器是记录器的孩子,io.debezium.connector
记录器是记录器的孩子io.debezium
。在层次结构的顶部,根记录器为它下面的所有记录器定义了默认记录器配置。
应用程序产生的每条日志消息也有一个特定的日志级别:
ERROR
- 错误、异常和其他重大问题
WARN
-潜在的问题和问题
INFO
- 状态和一般活动(通常是低容量)
DEBUG
- 更详细的活动有助于诊断意外行为
TRACE
- 非常冗长和详细的活动(通常非常大量)
appender本质上是写入日志消息的目的地。每个 appender 都控制其日志消息的格式,让您可以更好地控制日志消息的外观。
要配置日志记录,您需要为每个记录器指定所需的级别以及应写入这些日志消息的附加程序。由于记录器是分层的,根记录器的配置作为其下所有记录器的默认配置,尽管您可以覆盖任何子(或后代)记录器。
如果您在 Kafka Connect 进程中运行 Debezium 连接器,则 Kafka Connect 在 Kafka 安装中使用 Log4j 配置文件(例如/opt/kafka/config/connect-log4j.properties
)。默认情况下,此文件包含以下配置:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
...
1 | 根记录器,它定义了默认记录器配置。默认情况下,记录器包括INFO 、WARN 和ERROR 消息。这些日志消息被写入stdout 附加程序。 |
2 | appender将stdout 日志消息写入控制台(而不是文件)。 |
3 | appender使用stdout 模式匹配算法来格式化日志消息。 |
4 | appender的模式stdout (有关详细信息,请参阅Log4j 文档)。 |
默认情况下,Debezium 连接器将所有INFO
、WARN
和ERROR
消息写入控制台。您可以使用以下方法之一更改默认日志记录配置:
通过配置记录器设置日志记录级别
使用 Kafka Connect REST API 动态设置日志记录级别
通过添加映射的诊断上下文设置日志记录级别