6.SpringBoot 日志文件 今天药忘吃喽~ 2024-04-28 07:30 48阅读 0赞 #### 文章目录 #### * 1.日志概述 * 2.日志作用 * 3.使用和观察日志 * * 3.1如何观察日志 * 3.2使用日志 * 3.3日志级别 * 3.4日志持久化 * 3.5日志分割 * 4.日志框架 * * 4.1门面模式(外观模式) * 4.2 SLF4J框架介绍 * 4.3 日志格式的说明 * * 4.3.1日志名称 * 5.日志颜色设置 * 6.总结 **大家好,我是晓星航。今天为大家带来的是 SpringBoot 日志文件 相关的讲解!?** ## 1.日志概述 ## ⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗? 答案是否定的,写程序不是买彩票,不能完全靠猜,因此⽇志对于我们来说,最主要的⽤途就是排除和定位问题。 除了发现和定位问题之外,我们还可以通过⽇志实现以下功能: * 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。 * 记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。 * 记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。 以上这些都是⽇志提供的⾮常实⽤的功能。 **日志真实使用案例:** 关键节点上的关键数据⽇志记录举例:例如,⽐如咱们的教务系统,在注册时候不⽌要在教务系统添加 ⼀条⽤户记录,同时也会给⽐特论坛添加⼀条⼀模⼀样的⽤户记录,这样做的⽬的是为了实现⼀次注 册,多处使⽤的⽬的。不需要⽤户在两边系统注册了,等于在程序中以极低的成本实现的⽤户数据的同 步,但这样设计有⼀个致命的问题,⽤户在教务系统注册信息的时候,如果论坛挂了,那么⽤户的注册 ⾏为就会失败?因为⽤户在注册的时候需要同步注册到论坛系统,但论坛现在挂了,这个时候怎么办 呢? 最简单的解决⽅案,教务系统在注册的时候,不管论坛是否注册成功,都给⽤户返回成功,那这个时候 如果论坛注册失败了怎么办?⾮常简单,如果注册失败了,记录⼀下⽇志,等论坛恢复正常之后,把⽇ 志给论坛的管理⼈员,让他⼿动将注册失败的⽤户同步到论坛系统,这样就最低成本的解决了问题。这 就是⽇志的重要作⽤。 ## 2.日志作用 ## 1.定位和发现问题 2.系统监控 - 在6.18或11.11时,程序员们会通过系统监控来检测系统是不是有问题和bug 3.数据采集 - 例如你在抖音里搜了一个电脑,你去淘宝上看宝贝时,这时漫天都是电脑 4.日志审计 随着互联网的发展,众多企业的关键业务越来越多的运行于网络之上.网络安全越来越受到大家的关注,系统安全也成为了项目中的一个重要环节,安全审计也是系统中非常重要的部分,国家的政策法规、行业标准等都明确对日志审计提出了要求,通过系统日志分析,可以判断一些非法攻击,非法调用,以及系统处理过程中的安全隐患. ## 3.使用和观察日志 ## ### 3.1如何观察日志 ### ![image-20240319140216311][] ### 3.2使用日志 ### 注意这里引入slg4j包,不要导错包了 ![image-20240319140715158][] 1.定义日志对象 ![image-20240319140936810][] 2.打印日志 ![image-20240319140952108][] 3.观察通过Logger Api打印的日志区别 ![image-20240319141044295][] ### 3.3日志级别 ### * FATAL: 致命信息,表示需要立即被处理的系统级错误 * ERROR: 错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行, * WARN: 警告信息,不影响使用,但需要注意的问题 * INFO: 普通信息, 用于记录应用程序正常运行时的一些信息,例如系统启动完成、请求处理完成等 * DEBUG: 调试信息,需要调试时候的关键信息打印. * TRACE: 追踪信息,比DEBUG更细粒度的信息事件(除非有特殊用意,否则请使用DEBUG级别替代) ![image-20240319145736525][] Spring 默认的日志级别是info ### 3.4日志持久化 ### 数据保存在数据库中,是一种持久化的方式 日志保存在文件中,也是一种持久化的方式 ![image-20240319154322973][] ![image-20240319154746394][] ![image-20240319154847614][] 如果没有加路径,默认是放在当前项目下(idea启动方式) ![image-20240319155004302][] ![image-20240319155039842][] SpringBoot的特点:约定大于配置 ![image-20240319160022148][] ![image-20240319160035270][] 如果二者同时存在,path就失效了。name的优先级要高于path。 ![image-20240319160203341][] 这里因为name和path同时存在,但是name优先级更高,导致只有name中的login/ioc.log文件被创建。 ### 3.5日志分割 ### ![image-20240319160440690][] application.yml: ![image-20240319160738747][] 分割完成后,文件夹显示: ![image-20240319160802021][] 运行三次之后: ![image-20240319160906608][] ![image-20240319160929382][] ![image-20240319160502240][] 3.6日志的简单写法(使用@Slf4j) 选择的注解来源于lombok包 ![image-20240319162200118][] ![image-20240319162018488][] 可以看到在我们使用了 `@Slf4j` 来注释代码后,我们就不需要自己初始化一个Logger对象,而是系统为我们提供一个log对象可以直接引用 ## 4.日志框架 ## ### 4.1门面模式(外观模式) ### SLF4J是门面模式的典型应用(但不仅仅使用了门面模式) **门面模式定义** **门面模式**(Facade Pattern)又称为**外观模式**,提供了一个统一的接口,用来访问子 系统中的一群接口.其主要特征是定义了一个高层接口,让子系统更容易使用. ![image-20240319141722572][] 门面模式主要包含2种角色: 外观角色(Facade):也称门面角色,系统对外的统一接口 子系统角色(SubSystem):可以同时有一个或多个 SubSystem.每个 SubSytem 都 不是一个单独的类,而是一个类的集合.SubSystem 并不知道 Facade 的存在,对 于 SubSystem 而言, Facade 只是另一个客户端而已(即 Facade 对 SubSystem 透 明) 例如我们平时回家小米自动开关灯系统: 接口、类设计: ![image-20240319143110628][] ![image-20240319143335698][] 当我们没用门面模式时,我们要手动一个一个打开房间的灯。 ![image-20240319143403318][] 但是我们加入了一个总开关后 ![image-20240319143444777][] ![image-20240319143349388][] 此时我们只需要控制总开关就可以实现所有灯的开关功能 ![image-20240319143403318][] 一键开关所有灯: ![image-20240319143739492][] ![image-20240319143714058][] ![image-20240319143802411][] 门面模式的优点 * 减少了系统的相互依赖,实现了客户端与子系统的耦合关系,这使得子系统的变化会影响到调用它的客户端; * 提高了灵活性,简化了客户端对子系统的使用难度,客户端无需关心子系统的具体实现方式,而只需要和门面对象交互即可, * 提高了安全性,可以灵活设定访问权限,不在门面对象中开通方法,就无法访问 ### 4.2 SLF4J框架介绍 ### SLF4\]就是其他日志框架的门面.SLF4\]可以理解为是提供日志服务的统一API接口,并不涉及到具体的日志逻辑实现. **不引入日志门面** 常见的日志框架有log4\],logback等.如果一个项目已经使用了log4j,而你依赖的另一个类库,假如是Apache Active MQ,它依赖于另外一个日志框架logback,那么你就需要把logback也加载进去, ![image-20240319144237414][] 存在问题: 1. 不同日志框架的API接口和配置文件不同,如果多个日志框架共存,那么不得不 维护多套配置文件(这个配置文件是指用户自定义的配置文件). 2. 如果要更换日志框架,应用程序将不得不修改代码,并且修改过程中可能会存 在一些代码冲突. 3. 如果引入的第三方框架,使用了多套,那就不得不维护多套配置. **引入日志门面** 引入门面日志框架之后,应用程序和日志框架(框架的具体实现)之间有了统一的API接口(门面日志框架实现),此时应用程序只需要维护一套日志文件配置,且当底层实现框架改变时,也不需要更改应用程序代码, ![image-20240319144935061][] SLF4\] 就是这个日志门面 总的来说,SLF4\]使你的代码独立于任意一个特定的日志API,这是一个对于开发API的开发者很好的思想. ### 4.3 日志格式的说明 ### #### 4.3.1日志名称 #### ![image-20240319145343434][] 日志对象的名称,通常情况下,是当前类 ![image-20240319145419923][] 改为当前类后 ![image-20240319145447484][] 打印日志结果: ![image-20240319145503934][] ![image-20240319155633875][] 缩写对应目录如下: ![image-20240319155722025][] ## 5.日志颜色设置 ## 1.启动类设置 ![image-20240319152926187][] 2.添加 VM options ![image-20240319153030779][] ![image-20240319153131399][] 添加: `-Dspring.output.ansi.enabled=ALWAYS` ![image-20240319153438292][] 看结果图可以发现,我们日志信息已经成功改变颜色 ## 6.总结 ## 日志是程序中的重要组成部分,使用日志可以快速的发现和定位问题,Spring Boot内容了日志框架,默认情况下使用的是 info 日志级别将日志输出到控制台的,我们可以通过 lombok 提供的`@lf4j` 注解和 `log`对象快速的打印自定义日志. 日志包含6个级别,日志级别越高,收到的日志信息也就越少,我们可以通过配置日志的保存名称或保存目录来将日志持久化. *感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!?* [image-20240319140216311]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/a99dc57207774bdaa6d94248e68585f0.png [image-20240319140715158]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/6b3c0af5f165401e922f0205aa61c6be.png [image-20240319140936810]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/cf586a3ee3d543039529c40f5bfd51b9.png [image-20240319140952108]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/d0a58df0771c4377aeb34e3123e2020d.png [image-20240319141044295]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/a2b35199f88645d6b637b53f1f3b1ff4.png [image-20240319145736525]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/c173263c363043eab0859960a7109ae3.png [image-20240319154322973]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/a7f68914c54e4c7bbf02da77c3a95e9a.png [image-20240319154746394]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/1486e64fb7c44cb0ac5e855bbb476e84.png [image-20240319154847614]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/ecfe73e6feb2443498b3535a1abdd4c0.png [image-20240319155004302]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/1de448bae3534b139ee14fb55e13a701.png [image-20240319155039842]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/2e680b853e6a40cfaf38d5b1b4b0c3ac.png [image-20240319160022148]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/8a6b9071a9ff4522b35bb59264c27889.png [image-20240319160035270]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/ffc640de4e75480a9246134023f173db.png [image-20240319160203341]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/6aa6d27137e345c0ae7c0a1a42f48fc8.png [image-20240319160440690]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/c9ed3de8776a42d181980d7592e91c61.png [image-20240319160738747]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/afd53235542940a398a1c272b6de5f74.png [image-20240319160802021]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/4c391828d97d4f2b8e9d400d4bbeb033.png [image-20240319160906608]: https://img-blog.csdnimg.cn/img_convert/6346c1ea99b96e443ddc192c24d0488c.png [image-20240319160929382]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/6c5cf7f7d89641de8bd8595abe7fc864.png [image-20240319160502240]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/55204d8cf5b148eab4ce2361727392e3.png [image-20240319162200118]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/a747ae6f11e74430992dcc6fe4a64bd1.png [image-20240319162018488]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/c75c1338c5f54bd3b9f7f9a37901fa8c.png [image-20240319141722572]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/b498c73b69784e60839d2ff5dc4b8df3.png [image-20240319143110628]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/bee01f347be74cb28db6b06a369ff692.png [image-20240319143335698]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/ea1d4940b66e44a4b6fa947efea16f81.png [image-20240319143403318]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/a62beb37e8c543caab7f270e9dd6f856.png [image-20240319143444777]: https://img-blog.csdnimg.cn/img_convert/f56420c06bd75004a285b29e9d74b4ff.png [image-20240319143349388]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/f80c90b25d704d8aa72133287719e451.png [image-20240319143739492]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/d8e3727a96774bc4a4bdbc55f13420d1.png [image-20240319143714058]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/07c07fd01573400ab44ce24b8ffe51e9.png [image-20240319143802411]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/d200da3c6e124d96853e1d7b331871a8.png [image-20240319144237414]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/e7f59aa727e8426d974f0bb75dd257d4.png [image-20240319144935061]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/eca68e13fd4a42fc94e89ed2da5a99a6.png [image-20240319145343434]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/8b323c5051bd407f8da06c765de842a6.png [image-20240319145419923]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/bfed46cc17ba4749961ad5143bb38a50.png [image-20240319145447484]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/278ed4e40e914b63a8d01e207643f8f4.png [image-20240319145503934]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/11d1d0cb7c0d4eb88e172fedfb1df20b.png [image-20240319155633875]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/491e3efac22c4486beb6f5fb6e44d603.png [image-20240319155722025]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/39814e96c03d4889b52bcc0d97100347.png [image-20240319152926187]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/27263ca515db474f8561a49caa34cbcb.png [image-20240319153030779]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/cc528d379f7e44a4b11801763b68634e.png [image-20240319153131399]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/63ac931cb0464961a53659c4adf3b427.png [image-20240319153438292]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/28/c73fcad07f0246a3a72b34b4a7b4646b.png
相关 6.SpringBoot 日志文件 1.记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。 2.记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。 3.记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持... 今天药忘吃喽~/ 2024年04月28日 07:30/ 0 赞/ 49 阅读
相关 springboot 项目日志配置文件详解 spring boot 项目指定 日志配置文件 在Spring Boot项目中,可以通过在`application.properties`或`application.ym ゞ 浴缸里的玫瑰/ 2024年03月24日 18:54/ 0 赞/ 65 阅读
相关 SpringBoot——》配置logback日志文件 > 推荐链接: > [总结——》【Java】][Java] > [总结——》【Mysql】][Mysql] > [总结——》【Redis】][Redis] > 快来打我*/ 2024年02月18日 13:29/ 0 赞/ 68 阅读
相关 SpringBoot 配置文件和日志文件 目录 一、SpringBoot配置文件 配置文件的格式 .properties配置文件格式 .yml配置文件格式 .properties 与 .yml的区别 配 妖狐艹你老母/ 2023年10月10日 23:39/ 0 赞/ 45 阅读
相关 springboot日志文件不生产问题 当指定了日志文件logback-spring.xml,发现项目启动的时候,不生产日志 解决方案:在yml中指定本工程具体的日志文件 logging: c 分手后的思念是犯贱/ 2023年06月30日 12:52/ 0 赞/ 2 阅读
相关 Springboot配置保存日志文件 点击关注公众号,利用碎片时间学习 来源:blog.csdn.net/gaopinqiang/ article/details/109228641 spring 以你之姓@/ 2022年09月14日 00:22/ 0 赞/ 262 阅读
相关 SpringBoot之yml文件配置、日志文件配置 Application.yml配置: app: instance: code: portal profile: dev 我不是女神ヾ/ 2022年05月04日 03:27/ 0 赞/ 1158 阅读
相关 4、SpringBoot之配置日志文件 该节主要学习怎么使用SpringBoot中的日志 项目地址:https://github.com/Chakid/SpringBoot-example 市面上的日志框 不念不忘少年蓝@/ 2022年01月11日 04:17/ 0 赞/ 431 阅读
相关 springboot使用logback生成日志文件 我们来讲一下springboot2.x生成日志文件。 一、先来看看官网说的需要注意的地方: ![springboot中文官网][springboot]因此,我们先来建一 Love The Way You Lie/ 2021年09月20日 08:32/ 0 赞/ 431 阅读
还没有评论,来说两句吧...