在Spring Boot项目中集成Logback 作为日志框架是一个标准做法 ,因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤:
1. 默认集成
Spring Boot会自动配置Logback,所以通常情况下,你不需要添加任何额外的依赖或配置。创建一个新的Spring Boot项目,它会自动包含Logback。
2. 自定义Logback配置
如果你需要自定义Logback的配置,可以通过以下步骤进行:
创建一个名为logback-spring.xml的文件,并将其放在src/main/resources目录下。
xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志的根路径 项目中value=Maven-SpringBoot/logs-->
<property name="LOGS" value="./logs"/>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender>
<!-- 文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/spring-boot.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天滚动生成一个日志文件 -->
<fileNamePattern>${LOGS}/spring-boot-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 日志文件保留天数 -->
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志级别 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
在application.properties或application.yml中指定Logback配置文件的位置:
bash
# application.properties
logging.config=classpath:logback-spring.xml
或者
yaml
# application.yml
logging:
config: classpath:logback-spring.xml
- 使用Logger
在Spring Boot应用中使用SLF4J API来记录日志:
java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RestController
public class MyController {
private static final Logger logger = LoggerFactory.getLogger(MyController.class);
@GetMapping("/log")
public String log(){
logger.info("日志记录");
int a=12344;
logger.info("打印a值:{}",a);
return "Logged message!";
}
}
注:
确保不要同时使用logback.xml和logback-spring.xml,因为Spring Boot提供了对logback-spring.xml的特定支持。
如果需要使用Log4j2,可以从spring-boot-starter中排除spring-boot-starter-logging依赖,并添加spring-boot-starter-log4j2。