71.2. logging
Kafka Connect 具有自己的可配置的日志记录器:
-
connect.root.logger.level
-
log4j.logger.org.reflections
根据运行的 Kafka Connect 插件,添加了更多日志记录器。
使用 curl 请求从任何 Kafka 代理 pod 获取运行 Kafka Connect 日志记录器的完整列表:
curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Kafka Connect 使用 Apache log4j
日志记录器实现。
使用 logging
属性配置日志记录器和日志记录器级别。
您可以通过直接指定日志记录器和级别(在线)或使用自定义(外部) ConfigMap 来设置日志级别。如果使用 ConfigMap,您可以将 logging.valueFrom.configMapKeyRef.name
属性设置为包含外部日志记录配置的 ConfigMap 的名称。在 ConfigMap 中,日志记录配置使用 log4j.properties
描述。logging.valueFrom.configMapKeyRef.name
和 logging.valueFrom.configMapKeyRef.key
属性都是强制的。使用指定的确切日志记录配置的 ConfigMap 会在 Cluster Operator 运行时使用自定义资源创建,然后在每次协调后重新创建。如果没有指定自定义 ConfigMap,则使用默认日志记录设置。如果没有设置特定的日志记录器值,则会为该日志记录器继承上级日志记录器设置。有关日志级别的更多信息,请参阅 Apache 日志记录服务。
在这里,我们看到 内联
和 外部日志记录
的示例。inline
日志记录指定根日志记录器级别。您还可以通过将特定类或日志记录器添加到 loggers 属性来设置日志级别。
内联日志记录
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect spec: # ... logging: type: inline loggers: connect.root.logger.level: INFO log4j.logger.org.apache.kafka.connect.runtime.WorkerSourceTask: TRACE log4j.logger.org.apache.kafka.connect.runtime.WorkerSinkTask: DEBUG # ...
将日志级别设置为 DEBUG
可能会导致大量日志输出,并可能会影响性能。
外部日志记录
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaConnect spec: # ... logging: type: external valueFrom: configMapKeyRef: name: customConfigMap key: connect-logging.log4j # ...
任何未配置的可用日志记录器将其级别设置为 OFF
。
如果使用 Cluster Operator 部署 Kafka Connect,则动态应用对 Kafka Connect 日志记录级别的更改。
如果使用外部日志记录,则会在日志附加程序更改时触发滚动更新。
垃圾收集器(GC)
垃圾回收收集器日志记录也可以使用 jvmOptions
属性启用 (或禁用)。