55.6. logging
cruise Control에는 설정 가능한 자체 로거가 있습니다.
-
rootLogger.level
cruise Control은 Apache log4j2
로거 구현을 사용합니다.
logging
속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name
속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내부에서 로깅 구성은 log4j.properties
를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name
및 logging.valueFrom.configMapKeyRef.key
속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스와 함께 생성된 다음 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다.
여기서는 인라인
및 외부
로깅의 예를 참조하십시오. 인라인
로깅은 루트 로거 수준을 지정합니다. loggers 속성에 추가하여 특정 클래스 또는 로거의 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka # ... spec: cruiseControl: # ... logging: type: inline loggers: rootLogger.level: INFO logger.exec.name: com.linkedin.kafka.cruisecontrol.executor.Executor 1 logger.exec.level: TRACE 2 logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer 3 logger.go.level: DEBUG 4 # ...
Cruise Control의 문제를 조사할 때 일반적으로 rootLogger
를 DEBUG
로 변경하여 보다 자세한 로그를 가져오는 것으로 충분합니다. 그러나 로그 수준을 DEBUG
로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka # ... spec: cruiseControl: # ... logging: type: external valueFrom: configMapKeyRef: name: customConfigMap key: cruise-control-log4j.properties # ...
가비지 수집기(GC)
jvmOptions
속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.