网站建设图文做营销网站视频
news/
2025/9/24 19:18:14/
文章来源:
网站建设图文,做营销网站视频,龙岗网站建设网站排名优化,做哪一类网站能赚钱【JavaEE】Spring Boot 开发要点总结#xff08;3#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结#xff08;3#xff09;1. 日志有什么作用2. 日志格式2.1 日志框架原理 3. 日志的打印3.1 System.out.println3.2 使用日志框架3.3 日志级别3.3.1 设置默认日志显… 【JavaEE】Spring Boot 开发要点总结3 文章目录 【JavaEE】Spring Boot 开发要点总结31. 日志有什么作用2. 日志格式2.1 日志框架原理 3. 日志的打印3.1 System.out.println3.2 使用日志框架3.3 日志级别3.3.1 设置默认日志显示阈值3.3.2 针对一个目录设置日志显示阈值 4. 日志持久化4.1 设置日志保存路径4.2 设置日志打印格式4.3 设置日志文件名4.4 面临的问题 5. lombok框架5.1 节省重复简单代码的书写5.2 快速读写日志文件5.3 lombok实现原理 【JavaEE】Spring Boot 开发要点总结3
1. 日志有什么作用
写代码不是概率事件bug的出现必然是有原因的而日志的主要作用就是排查和定位问题
而日志的生成就是随着程序的进行和一步步生成的不说全部过程都记录得清清楚楚至少重要的点和环节或者一些异常情况都有记录而通过日志的 “前后逻辑分析、类型级别、日志内容信息” 就可以定位和排查了就比如我们之前写普通 java 代码在控制台打印的信息和调试页面的信息差不多都是让我们知道程序执行的过程怎么样~
除此之外我们还能实现以下功能
记录用户登录日志方便分析用户是正常登录还是恶意破解用户记录系统的操作日志方便重要数据恢复和定位操作人记录程序的执行时间方便为以后优化程序提供数据支持
例如启动项目的时候控制台显示的就是日志标准的日志 而且这些标准的日志都是有固定格式的~ 三个问题 Spring Boot 内置了日志框架才能按照固定格式输出日志 这些信息代表什么呢 格式并不需要开发者去设计 默认情况下项目输出的日志并非开发者自定义和打印的Spring框架在运行时会自动打印一些日志 如何自定义打印日志呢 格式有了内容和打印时机还是需要自定义的 日志默认是打印在控制台 如何实现持久化呢 控制台的重新运行就会清空日志得保存下来才有意义后续才能查阅 2. 日志格式 这就是日志框架提供的格式提供的信息还是很全面的
2.1 日志框架原理
Spring Boot之所以可以打印日志是因为内置了两个日志框架 slf4j logback
为什么需要两个呢
slf4j 是开发者使用和调用的框架logback 最底层实现日志相关操作的框架
其实这里的思想跟 JQuery 和 JDBC 的思想差不多 多种浏览器统一满足JQuery开发者统一地使用开发API浏览器怎么识别代码展示出来的与开发者无关多种数据库统一满足JDBC开发者统一地使用开发API底层怎么实现数据持久化与开发者无关 一种 低耦合高内聚 的分工
而这里多种底层实现日志相关操作的框架统一支持slf4j开发者统一地使用开发API底层怎么实现日志相关操作的与开发者无关
logback就是其中一种底层框架
后面设置日志级别通过日志级别筛选 …等操作底层由框架帮我们去实现对于开发者这些“坐享其成”的事太多了我们要专心开发不必可以他们的存在
3. 日志的打印
3.1 System.out.println
这是我们普通java程序的日志打印方式效果平庸信息很少 运行后浏览器访问 查看控制台 如果要打印时间 效果 其他的信息获取和组织起来就更加麻烦了~
而自己去加日志级别没有作用你只是拼接了字符串罢了这样就检索不了
并且对于后面第三个持久化的问题sout的日志无法持久化保存
3.2 使用日志框架
程序能够启动并且能打印日志就什么这个框架已经引入进来了只需要以下操作
获取日志工厂 生成一个日志制造器 一定要选择slf4j框架的类 这里就涉及到了工厂模式通过工厂类LoggerFactory去获取实例对象 能猜到传过去的类对象就是对应“包名类名”的那一段信息
调用方法进行打印 访问一下试试 可见通过框架提供的API就可以有效地设置日志级别方法名对应的就是日志级别~
并且日志格式跟系统日志一模一样~
但是为什么我们打印了五条却只显示三条呢
这就是对日志级别的筛选操作
3.3 日志级别
trace微量、少许、痕迹级别最低debug调试日志级别info普通日志级别warn警告日志级别error错误日志级别fatal致命日志级别 只有系统崩溃时才会输出的日志级别并没有fatal( )方法级别最高
从上到下日志级别递增
而系统如何筛选日志的呢
可见我们啥也没设置的情况下显示阈值是info只显示跟info同级或者比info级别高的日志 ≥info这也是一种筛选~ 而我们去筛选的话就是根据这个原理去设置默认显示阈值
3.3.1 设置默认日志显示阈值 效果 看似没有启动成功其实是因为trace和debug的日志太多了所以我们筛查的应该是≥info≥warn≥error的 效果 info不显示了 显示 ≥warn 的日志了~
日志级别的作用就是过滤信息
将不需要的日志屏蔽掉
根据其他信息进行筛选排查的话之后需要用到就去学~
3.3.2 针对一个目录设置日志显示阈值 要求对于controller目录显示阈值为info对于model目录显示阈值为error logging.level.[路径] 代表设置该路径下以及其子目录的日志显示阈值其实设置默认日志显示阈值也是这个原理代表设置root目录下的所有… 不过越细致的优先级越高 效果 4. 日志持久化
日志持久化就是把日志保存到文件里也就是保存到电脑磁盘里后续在文件里去观看可以通过文本编辑器进行一些查找查看~
配置项不懂的可以去官方文档中解惑Common Application Properties (spring.io)
以下内容只涉及部分要想了解更多阅读文档
4.1 设置日志保存路径
不需要设置“要不要保存”的选项因为设置了后还是需要给一个保存路径还不如直接设置路径就代表了两种含义
需要保存日志保存日志的地址 保存到D盘的马库目录里 控制台 文件目录 默认名为spring类型为.log文件 并且目录不存在会自动创建 这个属性不能设置文件名 多按几下浏览器刷新 以追加的方式更新 4.2 设置日志打印格式 比如这个毫秒我不喜欢我要把他去掉 效果 日志文件里
并不会更新之前的内容而是往后去追加~
补充
删除几条信息后按Ctrl s
log文件修改后不能保存只能另存为或者选择替换原本的文件
4.3 设置日志文件名 好像不符合预期猜想key.log在哪 原来在这儿~ 所以path和name不能搭配~
这样生成的日志文件有两个~
而name对应的被认为是相对路径就保存到项目目录里了 改为具体位置~ perfect 4.4 面临的问题
追加的方式去写到文件里的那么一直这样下去会不会文件太大磁盘炸了文件太大查看不方便打开特别慢
给文件设置极限大小
日志框架里是有默认的大小限制的 如果不进行配置日志文件达到一定的大小就会重新创建一个新文件在原文件名加上后缀比如时间后续的日志追加到这个新文件里
当然这些效果的实现不止这一种做法也还有更多的效果可以实现可以去官方文档中阅读学习之后遇到需要实现的效果专门去查即可
5. lombok框架
Lombok虽然不是IDEA的“兄弟产品”但是却能摆在一开始选择依赖的页面里
说明这并不是等闲之辈很多公司都在用
而它出现就是为了快速开发java项目的
当然每个框架都是这样的那么Lombok究竟好用在哪呢
5.1 节省重复简单代码的书写 对于这些老朋友方法我们再熟悉不过了这些代码的特点就是必要但是简单并且属性如果比较多代码就会特别长
而Lombok框架提供的注解很好的解决了这个问题
注解帮助我们实现很多逻辑甚至控制我们的操作显示功能很强大它不像一些API的类和方法参与到代码里而是加在旁边对我们进行强大的辅助冥冥之中发挥强大的功能 下载lombok插件和引入依赖 其实在创建项目的时候就引入了并且如果没有安装插件也会自动帮你安装~ 注解介绍 属性越多构造方法的个数呈阶乘倍数增加所以全部都加上是不现实的并且没多大必要并不需要每个都存在~ 如果你觉得不够简洁还可以用 注解Data它等同于 Getter Setter ToString EqualsAndHashCode RequiredArgsConstructor NoArgsConstructor 等于这一整套~ 当然你自己写的代码会覆盖原有的~
5.2 快速读写日志文件
同样的用到注解 这样后在类的内部就可以直接使用一个静态常量 log 了代表的就是日志制造器 5.3 lombok实现原理
java程序执行的流程 而Lombok就是在编码的时候减轻了.java用户代码的负担 我们没有书写对应的 log 以及Getter和Setter…但是Lombok帮我们在.class里去添加了对应的字节码 而那个小辣椒插件是不可或缺的存在因为没有它我们在开发阶段就会被系统判定没有对应的定义以至于爆红没有题词…
插件不等同于框架插件的存在是在开发上和视觉上的提升例如虽然class文件里有定义但你现在的java代码上确实没有对应的定义却可以使用有题词且不会爆红这就是插件的帮助将一些注解的含义“告诉”编译器一些东西算他们定义过了~插件的复杂实现不是开发者需要注意的“坐享其成即可” (^ ω ^) 文章到此结束谢谢观看 可以叫我 小马我可能写的不好或者有错误但是一起加油鸭 代码位置spring_boot_demo2/src/main · 游离态/马拉圈2023年8月 - 码云 - 开源中国 (gitee.com)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916126.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!