日志记录器

Spring Boot Actuator 提供了在运行时查看和配置应用程序日志级别的功能。 您可以查看完整的日志器列表,也可以查看单个日志器的配置,该配置包括显式设置的日志级别以及日志框架赋予它的有效日志级别。 这些级别可以是以下之一:spring-doc.cadn.net.cn

null 表示没有显式配置。spring-doc.cadn.net.cn

配置日志记录器

要配置指定的日志记录器,请向该资源的 URI 发送一个 POST 请求并附带部分实体,如下例所示:spring-doc.cadn.net.cn

{
	"configuredLevel": "DEBUG"
}
要“重置”记录器的特定级别(并改用默认配置),您可以将 null 值作为 configuredLevel 传入。

OpenTelemetry

默认情况下,通过 OpenTelemetry 的日志记录未进行配置。 您必须提供 OpenTelemetry 日志端点的位置以完成配置:spring-doc.cadn.net.cn

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"
OpenTelemetry 的 Logback Appender 和 Log4j Appender 不属于 Spring Boot 的一部分。 更多详情,请参阅 OpenTelemetry Logback AppenderOpenTelemetry Log4j2 Appender,相关内容位于 OpenTelemetry Java Instrumentation GitHub 仓库 中。
您必须在 logback-spring.xmllog4j2-spring.xml 配置文件中配置 appender,才能使 OpenTelemetry 日志功能正常工作。

Logback 和 Log4j 的 OpenTelemetryAppender都需要访问一个 OpenTelemetry 实例才能正常工作。 此实例必须在应用程序启动期间以编程方式设置,具体做法如下:spring-doc.cadn.net.cn

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)

}