2.7. 外部日志记录
在为资源设置日志级别时,您可以直接在资源 YAML 的 spec.logging
属性中指定它们:
spec: # ... logging: type: inline loggers: kafka.root.logger.level: "INFO"
或者您可以指定 外部 日志记录:
spec:
# ...
logging:
type: external
name: customConfigMap
使用外部日志记录时,日志属性在 ConfigMap 中定义。ConfigMap 的名称在 spec.logging.name
属性中引用。
使用 ConfigMap 的优点是日志记录属性在一个位置维护,并可以被多个资源访问。
2.7.1. 为日志记录创建 ConfigMap
要使用 ConfigMap 定义日志属性,您需要创建 ConfigMap,然后在资源 spec
中的日志记录定义中引用它。
ConfigMap 必须包含适当的日志记录配置。
-
Kafka 组件、ZooKeeper 和 Kafka Bridge
的 log4j.properties
-
Topic Operator 和 User Operator
的 log4j2.properties
配置必须置于这些属性下。
此处我们演示 ConfigMap 如何定义 Kafka 资源的根日志记录器。
步骤
创建 ConfigMap。
您可以使用位于命令行的
oc
以 YAML 文件或属性文件创建 ConfigMap。带有 Kafka 的根日志记录器定义的 ConfigMap 示例:
kind: ConfigMap apiVersion: kafka.strimzi.io/v1beta1 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.name
设置为 ConfigMap 的名称。spec: # ... logging: type: external name: logging-configmap
创建或更新资源。
oc apply -f kafka.yaml