SpringBoot开发【日志】SpringBoot的默认配置

SpringBoot日志配置详解:默认设置与自定义路径
本文介绍了如何利用SpringBoot的默认日志配置,包括调整级别、控制台输出格式、文件路径设定等,并展示了如何通过.properties文件进行个性化设置。

上一篇学习了SpringBoot的日志关系,这次我们来学习一下默认配置

SpringBoot的默认配置

这个日志怎么用呢
我们打开test,加上日志的语句和方法,这里列举两个方法

//记录器
    Logger logger = (Logger) LoggerFactory.getLogger(getClass());
    @Test
    void contextLoads() {

        //日志的级别由低到高 trace<debug<info<warning<error
        //可以调整日志输出级别,日志就会在这个级别和以后的高级别生效
        //springboot默认级别是info级别
        logger.info("这是info日志");
        logger.warning("这是warn日志");
    }

运行一下
测试我们发现info和warning已经生效
如果我们想要改级别顺序,在properties文件中可以实现
在文件中加logging.level.com.peter=trace,这里就不再演示
我们也可以修改日志文件生成位置
我们先让它默认生成

#当前项目下生成默认springboot.log
logging.file=springboot.log

测试我们看到在target下面生成了日志
当然我们也可以指定位置,日志名称前面加地址即可
我们再来说一下logging.path,它与logging.file相似,两者同时存在则执行logging.file

#在项目根路径下创建spring文件夹和log子文件夹,使用spring.log作为默认文件
logging.path=/spring/log

我们看到了生成了这样的文件
想要改变在控制台输出的日志格式,logging.pattern.console=具体格式,这里不详细说格式详解了

Spring Boot 默认使用 Logback 作为日志实现框架,并通过 `spring-boot-starter-logging` 模块自动启用日志功能[^1]。该模块会加载默认日志配置文件,通常位于 `src/main/resources` 目录下,推荐的文件名为 `logback-spring.xml`。 ### 默认日志配置文件结构 若未手动提供自定义配置文件,Spring Boot 会使用内置的默认日志配置。其行为等效于以下内容: ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 根日志级别设置为 INFO --> <root level="INFO"> <appender-ref ref="STDOUT"/> </root> </configuration> ``` 此配置日志信息输出到控制台,并设置了根日志级别为 `INFO`,即只输出 `INFO`、`WARN` 和 `ERROR` 级别的日志。 ### 日志级别的默认设置 Spring Boot 默认启用 `INFO`、`WARN` 和 `ERROR` 级别,而 `DEBUG` 和 `TRACE` 级别默认关闭[^2]。可以通过在 `application.properties` 或 `application.yml` 中设置日志级别来调整: ```properties logging.level.root=DEBUG ``` ### 自定义日志配置文件名称 如果希望使用不同于 `logback-spring.xml` 的日志配置文件名,可以在 `application.properties` 中指定: ```properties logging.config=classpath:custom-logback.xml ``` 这样可以灵活地切换不同的日志配置文件以适应不同环境需求[^5]。 ### 日志输出格式 默认日志输出格式如下所示: ``` 2024-07-13 15:30:45.123 [main] INFO com.example.demo.Application - Starting Application... ``` 其中包含时间戳、线程名、日志级别、类名及日志消息等内容。如需修改输出格式,可在 `logback-spring.xml` 中调整 `<pattern>` 配置项[^5]。 ### 持久化日志输出 若需将日志写入文件,可配置 `RollingFileAppender` 实现按天或按大小滚动的日志文件: ```xml <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> ``` 上述配置日志同时输出到控制台和文件中,并保留最近七天的日志文件。 ### 使用 @Slf4j 注解 Spring Boot 支持 Lombok 提供的 `@Slf4j` 注解,简化日志对象的声明与使用。只需在类上添加该注解即可直接使用 `log.info()` 等方法输出日志信息: ```java @RestController @Slf4j public class HelloController { @GetMapping("/hello") public String sayHello() { log.info("Hello endpoint accessed"); return "Hello, World!"; } } ``` 这种方式无需手动创建 `Logger` 实例,提升了开发效率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值