做网站banner课程封面,百度投诉中心24小时电话,武汉土建施工队,深圳华强北赛格大厦最新消息日志是程序的重要组成部分#xff0c;主要可以用来定位和排查问题。除此之外#xff0c;还可以用来#xff1a; 1. 记录用户的登录日志#xff0c;方便分析用户是正常登录还是恶意破解#xff1b; 2. 记录系统的操作日志#xff0c;方便数据恢复和定位操作人#xff1b;… 日志是程序的重要组成部分主要可以用来定位和排查问题。除此之外还可以用来 1. 记录用户的登录日志方便分析用户是正常登录还是恶意破解 2. 记录系统的操作日志方便数据恢复和定位操作人 3. 记录程序执行时间方便优化程序和提供数据支持 在 springBoot 中内置了日志框架SLF4Jlogback这两者的关系就类似于JDBC 和 MySQL之间SLF4J对于日志的多种实现方式做了统一。所以在程序中进行自定义日志输出的时候也通常是借助于SLF4J框架来输出日志 一. 自定义日志打印
1. 获取日志对象 1. 每个类都有自己的日志对象所以习惯用 private 修饰 2. 为了方便调用习惯用 static 修饰 3. 且该日志对象不希望被修改习惯用 final 修饰 4. Logger 是一个接口无法直接 new 对象一般借助 LoggerFactory.getLogger 方法获取日志对象 private static final Logger log LoggerFactory.getLogger(类对象);
注意 Logger 对象要选择 slf4j 包下的 2. 使用日志对象打印日志 使用对应方法来打印对应层级的日志 log.trace(im trace); log.debug(im debug); log.info(im info);log.warn(im warn);log.error(im error);
3. 日志格式说明 二. 日志级别 日志级别可以帮助我们筛选出重要的信息可以通过控制日志级别来让日志内容更加准确明了 日志级别可以控制不同环境下打印出不同的日志内容例如在开发环境下需要很多详细的信息而生产环境下为了保证性能一般就会需要较少的日志此时就可以提供日志级别来实现这个需求 1. 日志级别的分类和使用 trace级别最低 debug 调试时候的关键信息打印 info默认的日志级别 warn警告不影响使用 error错误信息 fatal致命的因为代码异常导致程序退出执行 级别越高能接收的信息就越少例如设置为 warn 级别的时候此时就只能接受 warnerrorfatal 级别的日志了。
2. 日志级别的设置 日志级别的设置可以通过配置文件来配置 # root 设置了默认级别
logginglevelrooterror
也可以针对文件路径来另外设置例如将 com.example.demo 路径下的日志级别设置为 trace
logginglevelrootcomexampledemotrace
三. 日志持久化 所谓日志持久化也就是将日志内容保存下来因为在生产环境下通常需要保存好日志文件方面后续进行追溯 同样是在配置文件中进行配置指定日志文件的存储目录和文件名 # 日志保存路径 绝对路径
# 只设置name的话此时路径就和项目的路径是一起的
# 也可以在 name 的基础上加上路径
logging:file:
# path: D:\\test\\
# name: springboot.logname: D:\\test\\springboot.log 并且存储的 springboot.log日志文件是实时更新的。日志文件的最大容量是 10MB。 四. 更加简单的实现日志打印 使用 slf4j 注解前提是要有 Lombok 框架支持 slf4j 是一个类注解表示给当前类中添加一个叫做 log 的日志对象(这是 lombok 提供的对象名)此处的 log 对象就是 slf4j 中提供的 Logger 对象 RestController
Slf4j
public class LoggerController {RequestMapping(/log)public String sayHi(){log.info(我是 log 的 info);log.error(我是 log 的 error);return hello3;}
} 五. Lombok的原理 此处再简单补充一下 Lombok 的一些原理知识Lombok实在编译时期起作用的 Lombok在程序中运行时起到的作用就是使用注解代替来快捷的实现一些语句。这点可以通过 target 目录来观察target 为项目最终执行的代码 在 target 中注解 slf4j 就自动的转换为构造日志对象的语句了。 Lombok 还有很多注解是经常用到的 1. Getter自动添加 getter 方法 2. Setter自动添加 setter 方法 3. ToString自动添加 toString 方法 组合注解Data包括 Getter Setter ToString EqualsAndHashCode RequiredArgsConstructor NoArgsConstructor