一、SpringBoot基础[日志]

一、日志

解释:SpringBoot使用logback作为默认的日志框架,其中还可以导入log4j2等优秀的日志框架

1.修改日志内容

  1. 修改整个日志格式:logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{15} 你好 %msg%n
  • %d{yyyy-MM-dd HH:mm:ss}:将日期格式化为"年-月-日 时:分:秒"的形式,其中yyyy表示四位数的年份,MM表示- 两位数的月份,dd表示两位数的日期,HH表示24小时制的小时,mm表示两位数的分钟,ss表示两位数的秒数。
  • %-5level:输出日志级别,-5表示最多输出5个字符的级别名称,左对齐。
  • [%thread]:输出日志所在线程的名称。
  • %logger{15}:输出日志记录器的名称,最多显示15个字符。
  • 你好:输出固定的文本"你好"。
  • %msg:输出日志的具体消息。
  • %n:输出系统特定的换行符
  1. 只改时间格式:logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss
  2. 修改msg
@Controller // 用于标识Web控制器层的组件
public class hello {
    @ResponseBody
    @GetMapping("/doudou")
    public String hello(){
        var logger = LoggerFactory.getLogger(getClass());//获取该类的日志工厂内容(打印内容:2023-07-29 14:39:34  INFO 19524 --- [nio-8080-exec-2] com.gaodidi.controller.hello //获取该类的日志工厂内容(打印内容:2023-07-29 14:39:34  INFO 19524 --- [nio-8080-exec-2] com.gaodidi.controller.hello             : nh)
        logger.info("nh");
        return "nh";
    }
}

2.日志级别

解释:springboot默认日志级别开启的为INFO,调整不同级别,将会输出其级别及其级别以上的内容(下面内容级别由高到低)

  • TRACE:追踪框架详细流程日志,一般不使用
  • DEBUG:开发调试细节日志
  • INFO:关键、感兴趣信息日志
  • WARN:警告但不是错误的信息日志,比如:版本过时
  • ERROR:业务错误日志,比如出现各种异常
  • FATAL:致命错误日志,比如jvm系统崩溃
  • OFF:关闭所有日志记录
  1. 调整项目日志级别:logging.level.root=debug
  2. 调整某个路由日志级别打印
@Controller // 用于标识Web控制器层的组件
public class hello {
    @ResponseBody
    @GetMapping("/doudou")
    public String hello(){
        var logger = LoggerFactory.getLogger(getClass());
        logger.debug("nh");//此时访问该路由打印内容级别为debug级别
        return "nh";
    }
}

3.日志写入到文件

解释:将运行的日志写入到文件当中去

配置代码:logging.file.name=di.log

  1. 切割日志:当日志超过指定大小时,分成多个文件,并且根据时间变化,默认每一天新建一个日志
  • 命名:logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz(LOG_FILE就是上面设置的文件名,%i是从0一直增大的编号)
  • 文件大小:logging.logback.rollingpolicy.max-file-size=1KB
  1. 限制日志大小:logging.logback.rollingpolicy.total-size-cap=50MB
  • 解释:如果你有n个历史日志文件,它们的大小总和超过了 logging.logback.rollingpolicy.total-size-cap 设置,滚动策略将会删除最旧的日志文件,从而保持总大小在设定的限制内

4.使用log4j2框架

解释:log4j2在某些场景下有更强的性能,同时其可以用yml等配置更加灵活

注意:对于log4j2的配置和上面并不一样

导入:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

你可能感兴趣的:(spring,boot,java,spring)