我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何掌握SpringBoot日志文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何掌握SpringBoot日志文件

这篇“如何掌握SpringBoot日志文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何掌握SpringBoot日志文件”文章吧。

    SpringBoot日志文件

    1. 日志有什么用

    日志是程序的重要组成部分,想象一下,如果程序报错了,不让你打开控制台看日志,那么你能找到报错的原因吗。

    日志对于我们来说,最主要的用途就是排除和定位问题。除了发现和定位问题之外,我们还可以通过日志实现以下功能:

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

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

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

    2. 日志怎么用

    Spring Boot项目在启动的时候默认就会有日志的输出,如下图:

    如何掌握SpringBoot日志文件

    通过上述信息我们可以发现:

    • Spring Boot内置了日志框架

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

    • 日志默认是打印在控制台上,而控制台的日志是不能被保存的, 如何将日志永久的保存下来?

    3. 自定义日志打印

    开发者自定义打印日志的实现步骤:

    • 在程序中得到日志

    • 使用日志对象的相关语法输出要打印的内容

    3.1 在程序中得到日志对象
    private static final Logger log = LoggerFactory.getLogger(UserController.class);

    日志工厂需要将每个类的类型传进去,这样我们才能知道日志的归属类,才能更方便更直观的定位到问题

    注意:logger对象属于org.slf4j包下的,不要导错了

    如何掌握SpringBoot日志文件

    3.2 使用日志对象打印日志

    日志对象的打印方法有很多种,我们可以使用info方法来输出日志,

    @Controller@ResponseBodypublic class UserController {    private static final Logger log = LoggerFactory.getLogger(UserController.class);    @RequestMapping("/sayhi")    public void sayHi() {        log.trace("trace");        log.debug("debug");        log.info("info");        log.warn("warn");        log.error("error");    }}

    如何掌握SpringBoot日志文件

    4. 日志级别

    4.1 日志级别有什么用?
    • 日志级别可以帮你筛选出重要的信息,比如设置日志级别为error,那么就可以只看到程序的报错日志了,对于普通的调试日志和业务日志就可以忽略了。从而节省开发者筛选的时间

    • 日志级别可以控制不同环境下,一个程序是否需要打印日志,如开发环境我们需要很详细的信息,而生产环境为了保持性能和安全性就会输出少量的日志,而通过日志级别可以实现此类需求

    4.2 日志级别的分类与使用

    日志级别分为:

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

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

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

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

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

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

    日志级别的顺序:

    如何掌握SpringBoot日志文件

    越往上,接收到的信息就越少,如设置了warn就只能接收到warn及其上面的级别

    日志级别设置

    logging:  level:    root: error

    默认日志输出级别

    清除掉配置文件当中的日志设置,观察控制台输出的日志级别

    得到结论,日志输出级别默认是info

    当存在局部日志级别和全局日志级别设置,那么当访问局部日志时,使用的是局部日志级别。也就是局部日志优先级高于全局日志的优先级

    5. 日志持久化

    以上的日志都是输出在控制台上,然而生产环境上咱们需要将日志保存下来,以便出现问题之后追溯问题,把日志保存下来的过程叫做持久化

    想要将日至持久化,只需要在配置文件中指定日志的存储目录或者是指定日志保存文件名,Spring Boot就会将控制台的日志写到相应的目录或文件下

    配置日志文件的保存路径:

    logging:  file:    path: D:\rizhi

    保存的路径,当中包含转义字符方面的设置我们可以使用这个/来作为分割符。

    如果坚持使用Windows下的分割符,我们需要使用\转义字符来转义一下

    配置日志文件的文件名:

    logging:  file:    name: D:/rizhi/logger/spring.log

    6. 更简单的日志输出–lombok

    每次使用LoggerFactory.getLogger很繁琐,且每个类都添加一遍,也很麻烦。这里的lombok是一种更好的日志输出方式

    • 添加lombok框架支持

    • 使用@slf4j注解输出日志

    6.1 添加 lombok 依赖

    首先要安装一个插件:

    如何掌握SpringBoot日志文件

    然后再pom.xml页面右键、

    如何掌握SpringBoot日志文件

    如何掌握SpringBoot日志文件

    如何掌握SpringBoot日志文件

    最后重新添加依赖就可以了

    如何掌握SpringBoot日志文件

    6.2 输出日志

    使用@Slf4j注解,在程序中使用log对象即可输入日志并且只能使用log对象才能输出,这是lombok提供的对象名

    6.3 lombok原理解释

    lombok 能够打印⽇志的密码就在 target ⽬录⾥⾯,target 为项⽬最终执⾏的代码,查看 target ⽬录我们可以发现:

    如何掌握SpringBoot日志文件

    这里的@Slf4j注解变成了一个对象。

    下面是java程序的运行原理:

    如何掌握SpringBoot日志文件

    6.4 lombok更多注解说明

    基本注解

    注解作用
    @Getter自动添加get方法
    @Setter自动添加set方法
    @ToString自动添加toString方法
    @EqualsAndHashCode自动添加equals和hasCode方法
    @NoArgsConstructor自动添加无参构造方法
    @AllArgsConstructor自动添加全属性构造方法,顺序按照属性的定义顺序
    @NonNull属性不能为null
    @RequiredArgsConstructor自动添加必须属性的构造方法,final + @NonNull的属性为需

    组合注解:

    注解作用
    @Data@Getter+@Setter+EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

    日志注解

    注解作用
    @Slf4j添加一个名为log的对象

    以上就是关于“如何掌握SpringBoot日志文件”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    如何掌握SpringBoot日志文件

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    如何掌握SpringBoot日志文件

    这篇“如何掌握SpringBoot日志文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何掌握SpringBoot日志文件
    2023-07-05

    一文掌握Spring Boot 日志文件

    日志是程序的重要组成部分,日志对于我们来说,最主要的用途就是排除和定位问题,这篇文章主要介绍了Spring Boot 日志文件,需要的朋友可以参考下
    2023-03-06

    CentOS7日志文件及journalctl日志如何查看

    这篇文章主要介绍了CentOS7日志文件及journalctl日志如何查看的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CentOS7日志文件及journalctl日志如何查看文章都会有所收获,下面我们一起来看
    2023-07-05

    如何清理redis日志文件

    要清理Redis日志文件,可以按照以下步骤进行操作:1. 停止Redis服务:可以使用`redis-cli`命令连接到Redis,执行`SHUTDOWN`命令停止Redis服务。2. 备份日志文件:为了确保数据安全,建议在清理日志文件之前先
    2023-09-11

    如何查看mysql日志文件

    要查看MySQL日志文件,可以按照以下步骤操作:登录到MySQL服务器。可以使用以下命令登录到MySQL服务器:mysql -u username -p其中,username是您的MySQL用户名。查看MySQL的错误日志文件。可以使用以下
    如何查看mysql日志文件
    2024-04-09

    win10日志文件如何删除

    这篇文章主要讲解了“win10日志文件如何删除”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10日志文件如何删除”吧!win10日志文件删除方法:1、找到“c盘” 2、右击c盘选择“属
    2023-07-01

    Linux中如何查看日志文件

    小编给大家分享一下Linux中如何查看日志文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、tail这个是我最常用的一种查看方式命令格式: tail[必要参数
    2023-06-27

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录