Spring Boot日志

发布时间:2026/8/28 14:49:12

Spring Boot日志
博主主页:码农派大星.数据结构专栏:Java数据结构数据库专栏:MySQL数据库JavaEE专栏:JavaEE软件测试专栏:软件测试关注博主带你了解更多知识目录1. ?志概述1.1 ?志的?途1. 系统监控2. 数据采集3. ?志审计2. ?志使?2.1 打印?志2.1.1 在程序中得到?志对象2.1.2 使??志对象打印?志2.2 ??模式(外观模式)???模式的优点:门面模式和模板模式:灵活性比较:2.3 SLF4J 框架不引??志??引??志???2.4?志级别2.4.1 日志级别分类2.4.2 ?志级别的使??2.5 日志配置?2.5.1 配置?志级别2.5.2 ?志持久化?2.5.3 配置?志?件分割?3. 添加lombok依赖* *1. 志概述-------志对我们来说并不陌,从JavaSE部分,我们就在使 System.out.print 来打印志了.通过打 印志来发现和定位问题,或者根据志来分析程序的运过程.在Spring的学习中,也经常根据控制台 的志来分析和定位问题.随着项的复杂度提升,我们对志的打印也有了更的需求,不仅仅是定位排查问题. 如需要记录些的操作记录,也可能需要使志来记录的些喜好, 把志持久化,后续进数据分析等.但是 System.out.print 不能很好的满我们的需求,我们就需要使些专志框架### 1.1 志的途#### 1. 系统监控监控现在乎是个成熟系统的标配, 我们可以通过志记录这个系统的运状态,每个法的响应 时间,响应状态等,对数据进分析,设置不同的规则,超过阈值时进报警.如统计志中关键字的数 量并在关键字数量达到定条件时报警这也是志的常需求之#### 2. 数据采集推荐排序: 前推荐排序应在各个领域,我们经常接触的各各业很多也都涉及推荐排序,如购 物,告,新闻等领域.数据采集是推荐排序作中必须做的环,系统通过志记录的浏览历 史,停留时等,算法员通过分析这些数据,训练模型,给做推荐数据统计:统计的浏览量(PV),访客量(UV),点击量等,根据这些数据进数据分析,优化公司运营 策略#### 3. 志审计随着互联的发展众多企业的关键业务越来越多的运于络之上.络安全越来越受到家的关 注,系统安全也成为了项中的个重要环节, 安全审计也是系统中常重要的部分.国家的政策法规、 业标准等都明确对志审计提出了要求.通过系统志分析可以判断些法攻击,法调以 及系统处理过程中的安全隐患2. 志使------**SpringBoot 内置了志框架 Slf4j ,我们可以直接在程序中调 Slf4j 来输出志***Slf4j 打印的志和 System.out.print 有什么不同:我们通过 System.out.print 打印的志,SpringBoot 内置了志框架打印的志缺少了很多信息### 2.1 打印志#### 2.1.1 在程序中得到志对象在程序中获取志对象需要使志LoggerFactory private static Logger logger LoggerFactory.getLogger(LoggerController.class);LoggerFactory.getLogger 需要传递个参数,标识这个志的名称**.这样可以更清晰的知道是哪个类输出的志.当有问题时,可以更便直观的定位到问题类Logger对象是属于org.slf4j包下的,不要导错包#### 2.1.2 使志对象打印志 RequestMapping(“/log”) RestController public class LoggerController { private static Logger logger LoggerFactory.getLogger(LoggerController.class); PostConstruct public void print(){ System.out.println(““); System.out.println(“打印日志”); logger.info(“打印日志”); } }### 2.2 模式(外观模式)**SLF4J是门面模式的典型应用(但不仅仅使用门面模式)**模式称为外观模式,提供了个统的接,来访问系统中的群接.其主要特征是定义了个层接,让系统更容易使同时隐藏了系统的复杂性。这种模式通常用于简化客户端与复杂系统的交互隐藏系统的内部结构门面模式实现:比如说我回家,我们会开各个屋的灯.离开家时,会关闭各个屋的灯 如果家设置个总开关,来控制整个屋的灯就会很便 public class FacadePatternDemo { public static void main(String[] args) { //调用门面 LightFacade lightFacade new LightFacade(); lightFacade.lightOn(); } } //灯的门面 class LightFacade{ private Light livingRoomLight new LivingRoomLight(); private Light hallLight new HallLight(); private Light diningLight new DiningLight(); public void lightOn(){ livingRoomLight.on(); hallLight.on(); diningLight.on(); } public void lightOff(){ livingRoomLight.off(); hallLight.off(); diningLight.off(); } } //客厅灯 class LivingRoomLight implements Light{ Override public void on() { System.out.println(“打开客厅灯”); } Override public void off() { System.out.println(“关闭客厅灯”); } } //走廊灯 class HallLight implements Light{ Override public void on() { System.out.println(“打开?廊灯”); } Override public void off() { System.out.println(“关闭?廊灯”); } //餐厅灯 class DiningLight implements Light{ Override public void on() { System.out.println(“打开餐厅灯”); } Override public void off() { System.out.println(“关闭餐厅灯”); } } ### 模式的优点:减少了系统的相互依赖.实现了客端与系统的耦合关系,这使得系统的变化不会影响到调它 的客端,门面模式将客户端与子系统解耦客户端只需要与门面接口交互而不是直接与子系统中的多个组件交互。提了灵活性,简化了客端对系统的使难度,客端需关系统的具体实现式,只需 要和对象交互即可提了安全性.可以灵活设定访问权限,不在对象中开通法,就法访问### 门面模式和模板模式:门面模式提供了一个统一的接口来访问一个子系统中的一组操作,代码层面就是接口模板模式定义了一个模板方法,代码层面上就是抽象类,定义一些基本的方法供子类实现或重写父类中定义的模板方法提供了一个通用的框架可以在多个子类中复用门面模式的目的是简化客户端与复杂子系统的交互而模板模式的目的是定义一些模版框架让子类实现具体的操作门面模式通常通过创建一个高层次的接口来实现而模板模式则通过在抽象类中定义一个模板方法来实现门面模式隐藏了子系统的复杂性客户端不需要知道子系统的具体实现模板模式则提供了操作的模版框架子类只需要遵循这个框架来实现具体的步骤#### 灵活性比较:模板模式提供了在固定算法结构内的灵活性允许子类定制算法的某些步骤但不允许改变算法的整体结构。这种灵活性适用于需要保持算法结构一致性的场景。门面模式提供了在客户端和复杂子系统之间的灵活性允许客户端通过一个简单的接口与系统交互而不需要了解子系统的内部复杂性。这种灵活性适用于需要简化客户端与复杂系统交互的场景。### 2.3 SLF4J 框架SLF4J 就是其他志框架的.SLF4J可以理解为是提供志服务的统API接,并不涉及到具体的志逻辑实现#### 不引志常的志框架有log4J,logback等.如果个项已经使了log4j你依赖的另个类库假如是 ApacheActive MQ,它依赖于另外个志框架logback,那么你就需要把logback也加载进去**存在问题:**1. 不同志框架的API接和配置件不同,如果多个志框架共存,那么不得不维护多套配置件(这 个配置件是指定义的配置件).2. 如果要更换志框架,应程序将不得不修改代码,并且修改过程中可能会存在些代码冲突.3. 如果引的第三框架,使了多套,那就不得不维护多套配置引志#### 引志引志框架之后,应程序和志框架(框架的具体实现)之间有了统的API接(志框架 实现),此时应程序只需要维护套志件配置,且当底层实现框架改变时,也不需要更改应程序代码.SLF4J 就是这个志SLF4J使你的代码独于任意个特定的志API这是个对于开发API的开发者很好的思想### 2.4志级别#### 2.4.1 日志级别分类志的级别从到低依次为:FATAL、ERROR、WARN、INFO、DEBUG、TRACEFATAL:致命信息表需要即被处理的系统级错误.ERROR:错误信息,级别较的错误志信息,但仍然不影响系统的继续运.WARN:警告信息,不影响使,但需要注意的问题INFO:普通信息,于记录应程序正常运时的些信息,例如系统启动完成、请求处理完成等.DEBUG:调试信息,需要调试时候的关键信息打印.TRACE:追踪信息,DEBUG更细粒度的信息事件(除有特殊意否则请使DEBUG级别替代)#### 2.4.2 志级别的使 RequestMapping(”/log) RestController public class LoggerController { private static Logger logger LoggerFactory.getLogger(LoggerController.class); PostConstruct public void print(){ System.out.println(”); System.out.println(“打印日志”); logger.info(“打印日志”); logger.trace(“ trace “); logger.debug(” debug “); logger.info(” info “); logger.warn(” warn “); logger.error(” error ”); } }结果发现,只打印了info,warn和error级别的志这与志级别的配置有关, 志的输出级别默认是info级别,所以只会打印于等于此级别的志,也就 是info, warn和error### 2.5 日志配置####2.5.1 配置志级别志级别配置只需要在配置件中设置logging.level配置项yml配置: logging: level: com: VerificationCode: demo: trace#### 2.5.2 志持久化把志保存下来就叫持久化yml配置: level: file: path: E:/temp给配置文件命名: logging: file: name: lxylogging: file: name: logger/lxy.log#### 2.5.3 配置志件分割默认志件超过10M就进分割logging.logback.rollingpolicy.max-file-size logging.logback.rollingpolicy.file-name-pattern3. 添加lombok依赖--------------每次都使LoggerFactory.getLogger(xxx.class) 很繁琐,且每个类都添加遍,lombok给我们提供了 种更简单的式1.添加lombok框架持 org.projectlombok lombok true 2.使 slf4j 注解输出志成功输出志:

相关新闻

Nitter 开源项目使用教程

Nitter 开源项目使用教程

2026/8/28 14:49:12

Nitter 开源项目使用教程 【免费下载链接】nitter Alternative Twitter front-end 项目地址: https://gitcode.com/GitHub_Trending/ni/nitter 1. 项目的目录结构及介绍 Nitter 项目的目录结构如下: nitter/ ├── conf/ │ ├── nitter.conf │ └…

PPBadgeView 使用教程

PPBadgeView 使用教程

2026/8/28 14:49:12

PPBadgeView 使用教程 【免费下载链接】PPBadgeView iOS Custom Badge, Support UIView, UITabBarItem, UIBarButtonItem ,Support Objective-C/Swift; iOS自定义Badge组件, 支持UIView, UITabBarItem, UIBarButtonItem, 支持Objective-C/Swift 项目地址: https://gitcode.co…

【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程

【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程

2026/8/28 14:49:12

前言**???本期讲解关于spring aop的入门介绍~~~??感兴趣的小伙伴看一看小编主页:-CSDN博客?? 你的点赞就是小编不断更新的最大动力****??那么废话不多说直接开整吧~~**目录???1.AOP概述1.1什么是AOP?1.2什么是Spring AOP???2.Spring AOP入门2.1环境…

frontend-slides 完整指南:把 PPTX 转换成 HTML 演示文稿的零依赖方案

frontend-slides 完整指南:把 PPTX 转换成 HTML 演示文稿的零依赖方案

2026/8/28 15:39:14

frontend-slides 完整指南:把 PPTX 转换成 HTML 演示文稿的零依赖方案 【免费下载链接】ECC The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor…

3步Docker一键启动 Open WebUI:本地 AI 对话平台的完整部署路径

3步Docker一键启动 Open WebUI:本地 AI 对话平台的完整部署路径

2026/8/28 15:39:14

3步Docker一键启动 Open WebUI:本地 AI 对话平台的完整部署路径 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui Open WebUI 是一个可完全离线运…

frontend-slides:零依赖生成动画HTML幻灯片,还能把PPT变成网页

frontend-slides:零依赖生成动画HTML幻灯片,还能把PPT变成网页

2026/8/28 15:39:14

frontend-slides:零依赖生成动画HTML幻灯片,还能把PPT变成网页 【免费下载链接】ECC The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cu…

铁路电子系统隔离DC-DC设计:从EN50155标准到实战选型

铁路电子系统隔离DC-DC设计:从EN50155标准到实战选型

2026/8/28 15:39:14

1. 铁路电子系统的供电难题:为什么必须用隔离DC-DC1.1 从一块板卡看整车供电环境做铁路电子的人都有过这种经历:拿一块在实验室调得好好的板卡,装到车上跑一趟试运行,回来就发现电源芯片烧了、通信偶尔断、MCU莫名其妙复位。问题不…

AI不是万能药:从工程角度看模型部署、RAG与Agent落地的真实边界

AI不是万能药:从工程角度看模型部署、RAG与Agent落地的真实边界

2026/8/28 15:39:14

先亮明结论:这句话不是反对 AI,而是反对“AI 是万能药”的营销话术。从工程视角看,AI 确实在改变一部分工作方式:代码补全、文档解析、知识库问答、批量内容生成、Agent 编排,这些都真实可用。但 AI 没有改变的东西同样…

C++函数模板在量化交易中的核心应用与性能优化实践

C++函数模板在量化交易中的核心应用与性能优化实践

2026/8/28 15:29:14

1. 从策略到代码:为什么量化交易离不开C模板如果你在量化交易这个行当里摸爬滚打过一阵子,尤其是在做高频、做市或者对延迟有极致要求的策略时,你一定会对C又爱又恨。爱的是它那无与伦比的性能和控制力,恨的是它那繁琐的语法和稍不…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…