|
此版本仍在开发中,尚未视为稳定版。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
日志记录器
Spring Boot Actuator 提供了在运行时查看和配置应用程序日志级别的功能。 您可以查看完整的日志器列表,也可以查看单个日志器的配置,该配置包括显式设置的日志级别以及日志框架赋予它的有效日志级别。 这些级别可以是以下之一:
-
TRACE -
DEBUG -
INFO -
WARN -
ERROR -
FATAL -
OFF -
null
null 表示没有显式配置。
配置日志记录器
要配置指定的日志记录器,请向该资源的 URI 发送一个 POST 请求并附带部分实体,如下例所示:
{
"configuredLevel": "DEBUG"
}
要“重置”记录器的特定级别(并改用默认配置),您可以将 null 值作为 configuredLevel 传入。 |
OpenTelemetry
默认情况下,通过 OpenTelemetry 的日志记录未进行配置。 您必须提供 OpenTelemetry 日志端点的位置以完成配置:
-
Properties
-
YAML
management.opentelemetry.logging.export.otlp.endpoint=https://otlp.example.com:4318/v1/logs
management:
opentelemetry:
logging:
export:
otlp:
endpoint: "https://otlp.example.com:4318/v1/logs"
management.opentelemetry.logging.export.* 配置属性可用于配置 BatchLogRecordProcessor。
例如,要将导出间隔更改为 15 秒:
-
Properties
-
YAML
management.opentelemetry.logging.export.schedule-delay=15s
management:
opentelemetry:
logging:
export:
schedule-delay: "15s"
management.opentelemetry.logging.limits.* 配置属性可用于配置日志记录限制。
例如,要将每条日志记录的属性数量限制为 64,并将最大属性值长度限制为 256 个字符:
-
Properties
-
YAML
management.opentelemetry.logging.limits.max-attributes=64
management.opentelemetry.logging.limits.max-attribute-value-length=256
management:
opentelemetry:
logging:
limits:
max-attributes: 64
max-attribute-value-length: 256
如果您需要完全控制,可以注册一个自定义的 LogLimits Bean。
| OpenTelemetry 的 Logback Appender 和 Log4j Appender 不属于 Spring Boot 的一部分。 更多详情,请参阅 OpenTelemetry Logback Appender 或 OpenTelemetry Log4j2 Appender,相关内容位于 OpenTelemetry Java Instrumentation GitHub 仓库 中。 |
您必须在 logback-spring.xml 或 log4j2-spring.xml 配置文件中配置 appender,才能使 OpenTelemetry 日志功能正常工作。 |
Logback 和 Log4j 的 OpenTelemetryAppender都需要访问一个 OpenTelemetry 实例才能正常工作。
此实例必须在应用程序启动期间以编程方式设置,具体做法如下:
-
Java
-
Kotlin
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
@Component
class OpenTelemetryAppenderInitializer implements InitializingBean {
private final OpenTelemetry openTelemetry;
OpenTelemetryAppenderInitializer(OpenTelemetry openTelemetry) {
this.openTelemetry = openTelemetry;
}
@Override
public void afterPropertiesSet() {
OpenTelemetryAppender.install(this.openTelemetry);
}
}
import io.opentelemetry.api.OpenTelemetry
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender
import org.springframework.beans.factory.InitializingBean
import org.springframework.stereotype.Component
@Component
class OpenTelemetryAppenderInitializer(
private val openTelemetry: OpenTelemetry
) : InitializingBean {
override fun afterPropertiesSet() = OpenTelemetryAppender.install(openTelemetry)
}