Log4j Kubernetes 支持

Log4j 通过提供查找来检索容器信息来支持 Kubernetes。

Accessing Kubernetes

Log4j Kubernetes 支持需要访问 Docker REST 接口。在许多情况下,可以自动访问 REST 服务。如果需要,可以在任何标准 Log4j 配置位置或通过 Spring Boot 配置来配置 KubernetesClient 端。但是请注意,由于 Spring Boot 会导致日志记录初始化 3 次,并且由于 Spring 环境仅在上次 Log4j 初始化期间可用,因此 Spring 属性仅对上次初始化的 Log4j 可用。

Lookup Attributes

Log4j Kubernetes 提供对以下容器属性的访问:

可以通过添加属性来访问属性

${k8s:containerId}

配置。请注意,kubernetes 变量在记录初始化期间仅解析一次,因此不应使用多个'$'字符来引用它们。

Configuration

Kubernetes 自动提供访问 Kubernetes API 服务器所需的许多配置。但是,通常需要提供访问 Kubernetes API 服务器或应用程序分配到的名称空间所需的 url。可以使用 Log4j 变量名配置以下属性,并通过 Log4j 的常规属性解析机制 mechansim 定位该属性,或者当应用程序在 Spring Boot 中运行并且创建了 Spring Environment 时,Log4j 将解析 spring 属性。请注意,Spring Boot 会初始化日志记录 3 次,只有最后一次会出现一个 Spring Environment。

Log4j 属性名称 SpringProperty 名称 Default Description
log4j2.kubernetes.client.apiVersion spring.cloud.kubernetes.client.apiVersion v1 Kubernetes API 版本
log4j2.kubernetes.client.caCertData spring.cloud.kubernetes.client.caCertData Kubernetes API CACertData
log4j2.kubernetes.client.caCertFile spring.cloud.kubernetes.client.caCertFile Kubernetes API CACertFile
log4j2.kubernetes.client.clientCertData spring.cloud.kubernetes.client.clientCertData Kubernetes API ClientCertData
log4j2.kubernetes.client.clientCertFile spring.cloud.kubernetes.client.clientCertFile Kubernetes API ClientCertFile
log4j2.kubernetes.client.clientKeyAlgo spring.cloud.kubernetes.client.clientKeyAlgo RSA Kubernetes API ClientKeyAlgo
log4j2.kubernetes.client.clientKeyData spring.cloud.kubernetes.client.clientKeyData Kubernetes API ClientKeyData
log4j2.kubernetes.client.clientKeyFile spring.cloud.kubernetes.client.clientKeyFile Kubernetes API ClientKeyFile
log4j2.kubernetes.client.clientKeyPassPhrase spring.cloud.kubernetes.client.clientKeyPassphrase changeit Kubernetes API ClientKeyPassphrase
log4j2.kubernetes.client.connectionTimeout spring.cloud.kubernetes.client.connectionTimeout 10s Connection timeout
log4j2.kubernetes.client.httpProxy spring.cloud.kubernetes.client.http-proxy
log4j2.kubernetes.client.httpsProxy spring.cloud.kubernetes.client.https-proxy
log4j2.kubernetes.client.loggingInberval spring.cloud.kubernetes.client.loggingInterval 20s Logging interval
log4j2.kubernetes.client.masterUrl spring.cloud.kubernetes.client.masterUrl kubernetes.default.svc Kubernetes API 主节点 URL
log4j2.kubernetes.client.namespacce spring.cloud.kubernetes.client.namespace default Kubernetes Namespace
log4j2.kubernetes.client.noProxy spring.cloud.kubernetes.client.noProxy
log4j2.kubernetes.client.password spring.cloud.kubernetes.client.password Kubernetes API 密码
log4j2.kubernetes.client.proxyPassword spring.cloud.kubernetes.client.proxyPassword
log4j2.kubernetes.client.proxyUsername spring.cloud.kubernetes.client.proxyUsername
log4j2.kubernetes.client.requestTimeout spring.cloud.kubernetes.client.requestTimeout 10s Request timeout
log4j2.kubernetes.client.rollingTimeout spring.cloud.kubernetes.client.rollingTimeout 900s Rolling timeout
log4j2.kubernetes.client.trustCerts spring.cloud.kubernetes.client.trustCerts false Kubernetes API 信任证书
log4j2.kubernetes.client.username spring.cloud.kubernetes.client.username Kubernetes API 用户名
log4j2.kubernetes.client.watchReconnectInterval spring.cloud.kubernetes.client.watchReconnectInterval 1s Reconnect Interval
log4j2.kubernetes.client.watchReconnectLimit spring.cloud.kubernetes.client.watchReconnectLimit -1 重新连接间隔限制重试

Requirements

Log4j Kubernetes 需要 Log4j Core,Log4j API 和最少的 Java8.有关更多信息,请参阅Runtime Dependencies

首页