SpringBoot 日志文件

news2024/12/28 20:44:05

(一)日志文件有什么用?

除了发现和定位问题之外,我们还可以通过日志实现以下功能:

  • 记录用户登录日志,以便分析用户是正常登录还是恶意破解用户。

  • 记录系统的操作日志,以便数据恢复和定位操作 。

  • 记录程序的执行时间,以便为以后优化程序提供数据支持。

以上内容就是 Spring Boot 输出的控制台日志信息。通过上述日志信息我们能发现以下 3个问题:

  • Spring Boot 内置了日志框架 (不然也输出不了日志)。

  • 默认情况下,输出的日志并非是开发者定义和打印的,那开发者怎么在程序中自定义打印日志呢?

  • 日志默认是打在控制台上的,而控制台的日志是不能被保存的,那么怎么把日志永久的保存下来呢?

同样是输出到控制台,为什么不使用sout,而要使用日志呢?

① 日志

(二)日志基础使用

注意:我们使用的是Logger 对象是属于 org.slf4j 包下的
日志工厂需要将每个类的类型传递进去,这样我们才知道日志的归属类,才能更方便定位问题。
Logger logger = LoggerFactory.getLogger(类名.class);

(三)日志相关基础概念

(1)日志说明

(2)日志级别

  • trace :微量,少许的意思,级别最低

  • debug :需要调试时候的关键信息打印

  • info :普通的打印信息 (默认日志级别)

  • warn :警告,不影响使用,但需要注意的问题

  • error :错误信息,级别较高的错误日志信息

  • fatal :致命的,因为代码异常导致程序退出执行的事件

(3)日志级别的设置

我们可以通过设置日志级别来让其只显示 自己想要的日志, 默认的日志级别的info
越往上接收到的消息就越少如设置了 warn 就只能收到 warn、error、fatal 级别的日志了。

日志级别配置只需要在配置文件中设置“logging.level”配置项即可,如下所示:

logging:
    level:
        root: error

(四)日志持久化

日志不会文件过大,超过文件默认大小的时候,会自动再创建一个文件.

两种方案:

① 设置日志的保存目录

②设置日志的保存文件名

# ①设置日志文件的目录
logging:
    file:
        path: D:\\logs
# ②设置日志文件的文件名
#    如果只设置文件名,那么会放在项目路径下
#    可以设置路径+文件名
logging:
    file:
        name: D:\\logs\\springBoot0217.log

(五)更简单的日志输出:lombok

每次都使用 LoggerFactory.getLogger(xxx.class)很繁琐,且每个类都添加一遍,很麻烦,使用 lombok 可以来更简单的输出。
1.添加 lombok 框架支持
2.使用 @slf4i 注解输出日志
@RestController
@RequestMapping("/p")
@Slf4j //使用这个注解
public class PersonController {
    @RequestMapping("/log")
    public void loggerTest() {
        log.error("------ error ------");
    }
}

原理:

其实lombok,其实实际上没有改动什么,只是简化了我们写代码的方式

其实编译后的目标文件夹,内容还是之前麻烦的代码,而lombok改变的只是我们写代码的方式

(六)旧的项目添加新依赖:editstarters

① 安装插件

② 在pox.xml中右键 或者 alt +insert

③ 选择这个插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节码指令

目录 2.1 入门 2.2 javap 工具 2.3 图解方法执行流程 1)原始 java 代码 2)编译后的字节码文件 3)常量池载入运行时常量池 4)方法字节码载入方法区 5)main 线程开始运行,分配栈帧内存 6)…

百度地图API添加自定义标记解决单html文件跨域

百度地图API添加自定义标记解决单html文件跨域 因为要往百度地图上添加一些标注点,而且这些标注点要用自定义的图片,而且只能使用单html文件,不能使用服务器(也别问为什么,就是这么个需求),做起…

互联网大厂测开面试记,二面被按地上血虐,所幸Offer已到手

在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 如何备战面试的? 第一步:准备简历…

第三方软件测试机构▏软件性能测试的测试流程和指标简析

软件性能是衡量软件产品质量的重要指标之一,性能测试也是软件测试中不可或缺的重要流程,主要测试软件性能方面的质量,它是一种非功能性的测试。进行性能测试是为了保障软件能够在期望的负载下运行良好,并且通过发现性能问题来消除…

【IP课堂】Ip地址如何进行精准定位?

通过Ip地址定位,是目前网络上最常见的定位方式。当然,也是最简单的定位方式。其实方法大多都是雷同的,通过Ip定位,就目前网上公开的技术。如通过搜索关键词“定位,定位查询,Ip定位”等,只能查询…

《狂飙》壁纸太帅,Python自动切换太酷(8)

小朋友们好,大朋友们好!我是猫妹!要说最近什么电视剧最火?非《狂飙》莫属。《狂飙》剧名来自毛主席诗词“国际悲歌歌一曲,狂飙为我从天落”。导演借用“狂飙”二字来比喻剧中的扫黑除恶大风暴。据了解,《狂…

店铺微信公众号怎么创建?

有些小伙伴问店铺微信公众号怎么创建,在解答这个问题之前,先简单说说店铺和微信公众号关系: 店铺一般是指小程序店铺,商家通过小程序店铺来卖货;微信公众号则是一个发布信息的平台。但是两者之间可以打通,…

如何去选择合适的自动化测试工具?

自动化测试是高质量软件交付领域中最重要的实践之一。在今天的敏捷开发方法中,几乎任一软件开发过程都需要在开发阶段的某个时候进行自动化测试,以加速回归测试的工作。自动化测试工具可以帮助测试人员以及整个团队专注于自动化工具无法处理的各自任务&a…

搭建Hexo博客-第5章-一些我用到的小技巧

搭建Hexo博客-第5章-一些我用到的小技巧 搭建Hexo博客-第5章-一些我用到的小技巧 搭建Hexo博客-第5章-一些我用到的小技巧 这大概是这组博客地最后一篇文章了,在这篇文章里,我想和大家分享一些我写博客时用到的小技巧。 Vs Code 我用的编辑器是 Vs C…

SpringBoot-自动配置-@Import注解与@EnableAutoConfiguration注解

Import注解 Enable* 底层依赖于 Import 注解导入一些类,使用 Import 导入的类会被 Spring 加载到 IOC 容器中Import 提供了4种用法: 1.导入Bean2.导入配置类3.导入ImportSelector实现类;一般用于加载配置文件中的类4.导入ImportBeanDefinitio…

阿里一面:谈一下你对DDD的理解?2W字,帮你实现DDD自由

说在前面 在微服务的应用开发中,DDD 用得越来越普及。 在40岁老架构师 尼恩的读者交流群(50)中,DDD是一个非常、非常高频的交流话题。 最近,有小伙伴面试阿里时,遇到一个面试题: 谈谈你对DDD的理解? 小伙…

我应该在我的博客上写什么? 介绍如何撰写初学者容易担心的文章

我想有很多人开了博客,但想不起来写作,无法取得进展。 博客的主题和文章的内容不会仅仅通过写你想做的事情来工作。 重要的是要了解用户想要阅读的内容以及人们可能收集的内容,并将其与您想要编写的内容很好地匹配。 这一次,我…

怎么拥有一个帅气的 CMD 命令窗口 ❓ - Windows

自从拥有这样一个炫酷的命令窗口,我都舍不得关掉它了 关于我为什么我要闲的去 “打扮” 一个命令窗口,这要从星期五下午的一场 摸鱼 🐠 开始,当时我要创建一个 vue ts vite 的项目练练手,为新项目开始做准备&#x…

spring-web InvocableHandlerMethod 源码分析

说明 本文基于 jdk 8, spring-framework 5.2.x 编写。author JellyfishMIX - github / blog.jellyfishmix.comLICENSE GPL-2.0 类层次 HandlerMethod,处理器的方法的封装对象。HandlerMethod 只提供了处理器的方法的基本信息,不提供调用逻辑。 Invoca…

大数据面试小抄

项目地址:https://github.com/GTyingzi/BigDATA 该项目是自己在学习大数据过程中整理、总结下来的一份面试小抄。涵盖Hadoop、Spark、Flink、Hive、HBae、Kafka、ES、Zookeeper等。 开源给大家,若感觉不错欢迎star~ 摘取Flink部分如下文章目录FlinkFli…

Zebra ZT410 ZT411 导入中文字体

1.设置--发送到打印机 2.字体--添加--下载 --windows 字体库下载到zebra 打印机 3.字体--工具--调用 ZEBRA驱动包中驱动。 4.老版打印机导入方式 Zebra ZPL条形码打印机上如何下载和使用TrueType或External字体-敏用数码(上海北京济南洛阳)|专注于条码数据处理 (chongshang.co…

Python空间分析| 01 利用Python计算全局莫兰指数(Global Moran‘s I)

全局空间自相关 空间自相关(spatial autocorrelation)是指一些变量在同一个分布区内的观测数据之间潜在的相互依赖性。Tobler(1970)曾指出“地理学第一定律:任何东西与别的东西之间都是相关的,但近处的东西比远处的东西相关性更强…

创建自己的脚手架(二)

创建自己的脚手架(二) 接着之前的功能继续开发 脚手架创建组件功能 pnpm add ejs 修改index.js中的文件内容 增加addcpn功能 #!/usr/bin/env node const { program } require("commander"); const { addComponentAction, createProjectAc…

mybatis 第一章 mybatis简介

1.mybatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBatis一词来源于“internet”和…

【智能算法】遗传算法原理及示例

目录:遗传算法一、流程图二、遗传编码三、适应度函数3.1 常见的适应度函数3.1.1 原始适应度函数3.1.2 标准适应度函数四、基本遗传操作4.1 选择操作4.1.1 比例选择4.1.2 轮盘赌选择4.2 交叉操作4.2.1 二进制交叉4.2.2 单点交叉4.2.3 两点交叉4.2.4 多点交叉4.3 变异…