日志基础
日志
在企业级开发中还是比较重要的
我们来写一个日志
@RestController @RequestMapping("/books") public class Controller { //创建记录日志的对象 private static final Logger log= LoggerFactory.getLogger(Controller.class); @GetMapping public String getById(){ System.out.println("Springboot is running"); log.debug("");//调试 log.info("");//运行 log.error("");//报错 log.warn("");//警告 return "Springboot is runnning"; } }
我们今后开发都是把写信息到日志里面
而很少采用直接打印输出在控制台的方式
fatal 记录崩溃级别的日志
看不到debug的信息
调试级别
因为debug的级别太低
我们可以开下来
第一种方式
第二种方式
不推荐开下来
因为调成debug级别都是上线后程序员进行调试才会开下来的
我们在以后经常用的一种方式是什么呢?
设置当前根目录下所有日志级别为debug
logging: level: root: debug
这样打印的日志信息就是DEBUG调试级别的
小结
我们会声明一个记日志的对象
我们也可以设置指定包的日志级别
我们可以设置分组
对某个组设置日志,设置日志级别
我们以后开发大部分用分组来固定日志
创建日志对象
书写BaseClass类
package com.bigdata1421.config.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class BaseClass { private Class clazz ; public static Logger log; public BaseClass() { clazz=this.getClass(); log=LoggerFactory.getLogger(clazz); } }
放在同级目录下
我们可以在子类中使用lombok的注解去实现
去掉注释
我们就不用写BaseClass类了
简化开发
利用lombok提供的注解简化开发 减少日志对象的声明操作
减少日志对象的声明操作
去掉了注解
日志输出格式控制
然而我们也可以控制日志的输出格式
设置日志模版格式
这些操作以后我们在公司中都不会去用
但是如果以后我们做了领头人
就可以让下面的员工都去这样去做
这边写了一个模版
#设置日志模版格式 pattern: console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"
天下公司一大抄
你抄我我抄你
文件记录日志
我们已经可以控制日志了
接下来我们可以输出打印日志
改天运维问你日志去哪里了
你总不能说日志去了 控制台
然后关掉了
我们要把日志写入文档保存到本地
我们要把日志写入文档保存到本地
我们要把日志写入文档保存到本地
在配置中这样书写就能保存日志
在主文件夹下就能查看到日志文件
我们可以添加其他配置属性设置其他的信息
比如说一天更新一次日志
控制日志的体积
设置最大日志文件的存储大小
logging: level: root: info file: name: server.log logback: rollingpolicy: max-file-size: 4KB file-name-pattern: server.%d{yyyy.MM.dd}.%i.log
这样打印日志就有日期显示
并且会进行备份
你上线后调试程序
都得靠日志文件了
小结