微服务架构之Spring Boot(三十一)

2022-04-07 20:00:09 浏览数 (1)

26。4日志级别

所有受支持的日志记录系统都可以使用 logging.level.<logger-name>=<level> 在Spring Environment 中设置记录器级别(例如,

在 application.properties 中),其中 level 是TRACE,DEBUG,INFO之一,警告,错误,致命或关闭。可以使用 logging.level.root

配置 root 记录器。

以下示例显示 application.properties 中的潜在日志记录设置:

logging.level.root=WARN

logging.level.org.springframework.web=DEBUG

logging.level.org.hibernate=ERROR

26。5日志组

能够将相关记录器组合在一起以便可以同时配置它们通常很有用。例如,您通常可以更改所有 Tomcat相关记录器的日志记录级别 ,但您无法轻

松记住顶级软件包。

为此,Spring Boot允许您在Spring Environment 中定义日志记录组。例如,以下是如何通过将“tomcat”组添加

到 application.properties 来定义它:

logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat

定义后,您可以使用一行更改组中所有记录器的级别:

logging.level.tomcat=TRACE

Spring Boot包括以下可以开箱即用的预定义日志记录组:

名称 记录仪

web org.springframework.core.codec , org.springframework.http , org.springframework.web

sql org.springframework.jdbc.core , org.hibernate.SQL

26.6自定义日志配置

可以通过在类路径中包含相应的库来激活各种日志记录系统,并且可以通过在类路径的根目录中或在以下Spring Environment 属性指定的位置

提供合适的配置文件来进一步自定义:logging.config 。

您可以使用 org.springframework.boot.logging.LoggingSystem 系统属性强制Spring Boot使用特定的日志记录系统。该值应该

是 LoggingSystem 实现的完全限定类名。您还可以使用值 none 完全禁用Spring Boot的日志记录配置。

由于在创建 ApplicationContext 之前初始化日志记录,因此无法控制Spring @Configuration 文件中 @PropertySources 的

日志记录。更改日志记录系统或完全禁用它的唯一方法是通过系统属性。

根据您的日志记录系统,将加载以下文件:

记录系统 定制

Logback logback-spring.xml , logback-spring.groovy , logback.xml , or logback.groovy

Log4j2 log4j2-spring.xml or log4j2.xml

JDK (Java Util Logging) logging.properties

如果可能,我们建议您使用 -spring 变体进行日志记录配置(例如, logback-spring.xml 而不是 logback.xml )。如果使用标

准配置位置,Spring无法完全控制日志初始化。

Java Util Logging存在已知的类加载问题,这些问题在从“可执行jar”运行时会导致问题。如果可能的话,我们建议您在从“可

执行jar”运行时避免使用它。

为了帮助进行自定义,一些其他属性从Spring Environment 传输到系统属性,如下表所述:

Spring环境 系统Property 评论

logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD The conversion word used when logging

exceptions.

logging.file LOG_FILE If defined, it is used in the default log

configuration.

logging.file.max-size LOG_FILE_MAX_SIZE Maximum log file size (if LOG_FILE enabled).

(Only supported with the default Logback

setup.)

logging.file.max-history LOG_FILE_MAX_HISTORY Maximum number of archive log files to keep (if

LOG_FILE enabled). (Only supported with the

default Logback setup.)

logging.path LOG_PATH If defined, it is used in the default log

configuration.

logging.pattern.console CONSOLE_LOG_PATTERN The log pattern to use on the console (stdout).

(Only supported with the default Logback

setup.)

logging.pattern.dateformat LOG_DATEFORMAT_PATTERN Appender pattern for log date format. (Only

supported with the default Logback setup.)

logging.pattern.file FILE_LOG_PATTERN The log pattern to use in a file (if LOG_FILE is

enabled). (Only supported with the default

Logback setup.)

logging.pattern.level LOG_LEVEL_PATTERN The format to use when rendering the log level

(default %5p ). (Only supported with the default

Logback setup.)

PID PID The current process ID (discovered if possible

and when not already defined as an OS

environment variable).

所有受支持的日志记录系统在解析其配置文件时都可以参考系统属性。有关示例,请参阅 spring-boot.jar 中的默认配置:

的logback

Log4j 2

Java Util日志记录

如果要在日志记录属性中使用占位符,则应使用 Spring Boot的语法,而不是底层框架的语法。值得注意的是,如果使用

Logback,则应使用 : 作为属性名称与其默认值之间的分隔符,而不是使用 :- 。

您可以通过仅覆盖 LOG_LEVEL_PATTERN (或带有Logback的 logging.pattern.level )将MDC和其他临时内容添加到日志

行。例如,如果使用 logging.pattern.level=user:%X{user} %5p ,则默认日志格式包含“user”的MDC条目(如果存

在),如以下示例所示。

2015-09-30 12:30:04.031 user:someone INFO 22174 --- [ nio-8080-exec-0] demo.Controller

Handling authenticated request

0 人点赞