spring如何加载默认的日志实现模式logback呢?
SpringBoot加载Logback日志框架的简介说明
SpringBoot采用自动配置的方式加载Logback日志实现模式 具体的实现方式,如下所示
1.依赖引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
此依赖包含以下组件:
- SLF4J API:提供日志抽象层。
- Logback Classic:实际的日志实现。
- 其他必要的桥接器:
如 `jul-to-slf4j` 和 `log4j-to-slf4j`
用于将其他日志框架的输出重定向到 SLF4J。
2.自动配置
Spring Boot 的自动配置机制会检测项目中是否存在特定的日志框架
并根据优先级选择合适的日志实现。具体步骤如下:
检测日志框架
- Spring Boot会检查类路径中是否存在以下日志框架(按优先级顺序)
1.Logback:
如果存在`logback-classic.jar`
则使用Logback。
2.Log4j2:
如果存在`log4j-core.jar`
则使用Log4j2。
3.Java Util Logging(JUL):
如果没有其他日志框架
则使用JDK自带`java.util.logging`。
初始化 Logback
- 如果选择了 Logback,Spring Boot 会自动初始化 Logback 并配置默认的日志设置。
- 默认配置文件是 `logback-spring.xml`
或
`logback.xml`
位于项目`src/main/resources` 目录下。
3.配置文件
`logback-spring.xml`
- 这个文件允许你利用 Spring Boot 的特性,例如占位符替换、条件配置等。
- 例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
</root>
</configuration>
`logback.xml`注意事项
- Logback配置文件,不依赖于 Spring Boot 特性。 - 如果同时存在`logback-spring.xml` 和 `logback.xml` Spring Boot会优先使用`logback-spring.xml`
应用属性配置
还通过 `application.properties`
或
`application.yml` 文件
来配置 Logback 的一些基本参数:
`application.properties`
```properties
logging.level.root=INFO
logging.file.name=app.log
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
`application.yml`
```yaml
logging:
level:
root: INFO
file:
name: app.log
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


