设为首页 加入收藏

TOP

快速搭建SpringBoot3.x项目(七)
2023-09-23 15:44:18 】 浏览:203
Tags:SpringBoot3.x 项目
都不会输出
Spring Boot中默认配置ERRORWARNINFO级别的日志输出到控制台

怎么调整日志级别呢?

  • 在application.properties或application.yml配置文件中 调整
logging.level.root=DEBUG
  • 在运行Spring Boot应用程序时,通过命令行参数来设置日志级别
java -jar your-application.jar --logging.level.root=DEBUG

③ 日志写到文件中

需在application.properties或application.yml配置文件中设置logging.filelogging.path属性

  • logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log
  • logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/var/log

如果只配置 logging.file,会在项目的当前路径下生成一个 xxx.log 日志文件。
如果只配置 logging.path,在 /var/log文件夹生成一个日志文件为 spring.log

:二者不能同时使用,如若同时使用,则只有logging.file生效

默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件,默认级别为:ERROR、WARN、INFO

8.3 日志基本使用

①第一种方法

我们参照官网:https://www.slf4j.org/manual.html 的例子即可

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {

  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

②第二种方法

第一种方法中,每次使用都要创建了一个名为 logger 的Logger对象,使用起来有点繁琐。这里我们引入注解方式实现

使用注解@Slf4j 需要安装lombok插件

可以用{} 占位符来拼接字符串,而不需要使用+来连接字符串。

@SpringBootTest
@Slf4j
class SpringbootdemoApplicationTests {

    @Test
    void testLog() {
        String name = "xiezhr";
        int age = 20;
        log.info("name:{},age:{}", name, age);
    }

}

日志输出如下:

2023-09-16T12:27:57.014+08:00  INFO 53792 --- [           main] c.x.s.SpringbootdemoApplicationTests     : name:xiezhr,age:20

8.4 日志高级配置

前面几节说的都是springboot基本日志配置,如果这些都不能满足我们的需求,我们就需要添加logback-spring.xml 官方推荐的配置文件进行配置

logback-spring.xml 中 配置了两个 分别是①输出到控制台②将日志写到文件中 并且使用 指定开发/生产环境配置

大家可以参考下面配置

<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<configuration>

    <!-- SpringBoot默认logback的配置 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <springProperty scope="context" name="APP_NAME" source="spring.application.name"/>
    <property name="LOG_HOME" value="/logs/${APP_NAME}"/>

    <!--1. 输出到控制台-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!-- <withJansi>true</withJansi>-->
        <!--此日志appender是为开发使用,只配置最低级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 2. 输出到文件  -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 当前记录的日志文档完整路径 -->
        <file>${LOG_HOME}/log.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} -%5level ---[%15.15thread] %-40.40logger{39} : %msg%n%n</pattern>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.Tim
首页 上一页 4 5 6 7 下一页 尾页 7/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JDK8升级JDK11最全实践干货来了 下一篇快速搭建linux centos 部署环境及..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目