2.8. 日志记录配置
在 Kafka 组件和 AMQ Streams Operator 的自定义资源中配置日志级别。您可以在自定义资源的 spec.logging
属性中直接指定日志级别。或者,您可以使用 configMapKeyRef
属性在自定义资源中引用的 ConfigMap 中定义日志属性。
使用 ConfigMap 的优点是日志记录属性在一个位置维护,并可以被多个资源访问。您还可以为多个资源重复使用 ConfigMap。如果您使用 ConfigMap 指定 AMQ Streams Operator 的日志记录器,您也可以附加日志规格来添加过滤器。
您可以在日志记录规格中指定一个日志 类型
:
-
直接指定日志级别时
内联
-
引用 ConfigMap 时
外部
内联
日志记录配置示例
spec: # ... logging: type: inline loggers: kafka.root.logger.level: "INFO"
外部
日志记录配置示例
spec: # ... logging: type: external valueFrom: configMapKeyRef: name: my-config-map key: my-config-map-key
ConfigMap 名称和
键
的值是必需的。如果未设置 名称或
密钥
,则会使用默认日志记录。
其它资源
Kafka 组件日志
Operator 日志
2.8.1. 为日志记录创建 ConfigMap
要使用 ConfigMap 定义日志属性,您需要创建 ConfigMap,然后在资源 spec
中的日志记录定义中引用它。
ConfigMap 必须包含适当的日志记录配置。
-
Kafka 组件、ZooKeeper 和 Kafka Bridge
的 log4j.properties
-
Topic Operator 和 User Operator
的 log4j2.properties
配置必须置于这些属性下。
在这一流程中,ConfigMap 为 Kafka 资源定义根日志记录器。
流程
创建 ConfigMap。
您可以将 ConfigMap 作为 YAML 文件或属性文件创建。
带有 Kafka 的根日志记录器定义的 ConfigMap 示例:
kind: ConfigMap apiVersion: v1 metadata: name: logging-configmap data: log4j.properties: kafka.root.logger.level="INFO"
如果您使用属性文件,请在命令行中指定该文件:
oc create configmap logging-configmap --from-file=log4j.properties
属性文件定义日志配置:
# Define the logger kafka.root.logger.level="INFO" # ...
在资源的
spec
中定义 外部 日志记录,将logging.valueFrom.configMapKeyRef.name
设置为 ConfigMap 的名称,valueFrom.configMapKeyRef.key
设置为此 ConfigMap 中的键。spec: # ... logging: type: external valueFrom: configMapKeyRef: name: logging-configmap key: log4j.properties
创建或更新资源。
oc apply -f KAFKA-CONFIG-FILE