SpringBoot —— 日志基本操作

news2024/10/6 16:22:48

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

SpringBoot —— 日志基本操作

  • 一、日志的作用
  • 二、日志级别
  • 三、日志的使用
  • 四、设置日志级别
    • 五、设置日期输出格式
  • 六、日志写入文件


@(SpringBoot —— 日志基本操作)

一、日志的作用


日志(log)作用:

1.编程期调试代码

2.运营期记录信息

  • 记录日常运营重要信息(峰值流量、平均响应时长…)
  • 记录应用报错信息(错误堆栈)
  • 记录运维过程数据(扩容、宕机、报警…)




二、日志级别


  • TRACE: 运行堆栈信息,使用率低
  • DEBUG: 程序员调试代码使用
  • INFO: 记录运维过程数据
  • WARN: 记录运维过程报警数据
  • ERROR: 记录错误堆栈信息
  • FATAL: 灾难信息,合并计入ERROR




三、日志的使用


  1. 控制层组件中,创建记录日志的对象,并记录日志信息
  • 日志默认使用info级别,只能看到info及以上级别的信息,此时debug级别的日志信息不可见
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author .29.
 * @create 2023-03-31 19:40
 */
@RestController
@RequestMapping("/books")
public class BookController {
    //一、创建记录日志的对象
    private static final Logger log = LoggerFactory.getLogger(BookController.class);

    @GetMapping
    public String get(){
        System.out.println("SpringBoot is running ...");

        //二、记录日志信息
        //日志默认使用info级别,只能看到info及以上级别的信息,此时debug级别的日志信息不可见
        log.debug("debug...");
        log.info("info...");
        log.warn("warn...");
        log.error("error...");
        return "test springboot use log";
    }
}

在这里插入图片描述


  • 快速创建日志对象的技巧:

导入lombok依赖,在控制层组件使用 @Slf4j 注解

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author .29.
 * @create 2023-03-31 19:40
 */
@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {
    //一、创建记录日志的对象
//    private static final Logger log = LoggerFactory.getLogger(BookController.class);

    @GetMapping
    public String get(){
        System.out.println("SpringBoot is running ...");

        //二、记录日志信息
        //日志默认使用info级别,只能看到info及以上级别的信息,此时debug级别的日志信息不可见
        log.debug("debug...");
        log.info("info...");
        log.warn("warn...");
        log.error("error...");
        return "test springboot use log";
    }
}


  1. 显示debug级别日志信息的方案

在SpringBoot配置文件application.yml中设置

方式一:

# 方式一:开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true

在这里插入图片描述


方式二(推荐):

# 方式一:开启debug模式,输出调试信息,常用于检查系统运行状况
#debug: true   

# 方式二:设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug

在这里插入图片描述




四、设置日志级别


在SpringBoot配置文件application.yml中设置


  • 单独设置某个包的日志级别
# 整体应用info级别,单独设置某个包为debug级别
logging:
  level:
    root: info
    com.haojin.springboot.springbootlog.controller: debug  # 单独设置某个包的日志级别

  • 设置分组,对某个组设置日志级别
# 设置日志级别
logging:
  level:
    root: info
    # 对组ebank设置日志级别为debug
    ebank: debug

  # 设置分组ebank
  group:
    ebank: com.haojin.springboot.springbootlog.controller,com.haojin.springboot.springbootlog.service




五、设置日期输出格式


在SpringBoot配置文件application.yml中设置

  • %d —— 日期
  • %m —— 消息
  • %n —— 换行
# 设置日志输出格式
loggin:
  pattern:
    console: "%d - %m%n"

在这里插入图片描述




六、日志写入文件


  • 设置日志文件:server.log 中
# 日志会写入日志文件:
logging:
  file:
    name: server.log

  • 日志文件详细配置:
logging:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 10KB  #设置文件极限大小
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log #设置日志命名格式



在这里插入图片描述

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

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

相关文章

Adobe全家桶功能介绍

Adobe全家桶是一套由Adobe公司开发的创意设计软件集合&#xff0c;包含了许多功能强大的软件&#xff0c;可以帮助用户完成各种创意设计任务。 以下是Adobe全家桶中一些主要软件的功能介绍&#xff1a; Photoshop&#xff1a;用于图像处理和编辑&#xff0c;可以进行图像裁剪…

Gradio介绍

Gradio App 就是给 AI 算法工程师训练的模型赋予分享给大众的能力。 从技术侧拆分&#xff0c;由三个部分组成&#xff1a; 前端页面 后端接口 AI算法模型推理 Gradio 做了一件事情&#xff0c;就是将这三个部分封装到一个 python 接口里&#xff0c;用户通过实现其封装的…

进来拿!最近疯传的154页微软 GPT-4早期实验报告:探究 AGI进化之路(全中文版)

这应该是&#xff0c;最近一段时间以来&#xff0c;关于 ChatGPT4.0剖析最全面的一份报告。 看懂10%&#xff0c;能帮我们对 ChatGPT 的认识&#xff0c;有一个质的跃升&#xff1b; 看懂50%&#xff0c;你将是分享 ChatGPT 知识领域最顶尖的那一拨人。 这份报告证明了 GPT-4…

Prometheus+Mysqld_exporter+Grafana从0到1搭建MySQL的可视化监控

目 录1. 准备工作1.1 安装MySQL1.2 安装Prometheus1.3 安装Mysqld_exporter1.4 安装Grafana2. 更改配置2.1 配置Mysqld_exporter2.2 配置Prometheus2.3 配置Grafana3. 小 结1. 准备工作 安装 MySQL 数据库安装 Prometheus安装 Mysqld_exporter安装 Grafana 在正式开始搭建之前…

面试官:如何在命令行跑Postman?

在接口自动化过程中&#xff0c;每次都打开postman工具来手动运行脚本显得不智能&#xff0c;所以可以通过命令在无UI或者其他持续集成的平台上执行脚本和数据。 01、环境准备与检查 环境准备 导出collection 安装node.js和cnpm 安装newman 环境检查 检测node.js&#x…

加密组件Jasypt学习、实战及踩坑记录

概述 最近入职新公司&#xff0c;因几乎全部项目都使用到jasypt&#xff0c;故而初步学习记录下本文&#xff08;持续更新&#xff09;。 官网及GitHub给出的简介&#xff1a;使用简单&#xff0c;性能好&#xff0c;特性features非常丰富&#xff1b;支持 另&#xff0c;有个…

leetcode刷题——字符串(双指针、滑动窗口、动态规划)

文章目录3.无重复字符的最长子串5.最长回文子串8. 字符串转换整数 (atoi)3.无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 //双指针滑动窗口数组hash int lengthOfLongestSubstring(char * s){int hash[127] {0}; //…

生产管理系统是什么?它有哪些功能模块?

阅读本文您将了解&#xff1a;1.企业生产管理的问题&#xff1b;2.生产管理系统模块有哪些&#xff1b;3.如何利用生产管理系统模块解决问题。 一、企业生产管理会遇到哪些问题&#xff1f; 生产管理是有计划、组织、指挥、监督调节的生产活动。以最少的资源损耗&#xff0c;…

Qt Quick - Menu

Qt Quick - Menu使用总结一、概述二、上下文菜单三、弹出式菜单四、子菜单和Action五、美化一、概述 Menu其实就是Qt Quick里面的菜单控件&#xff0c;一般来说。 Menu有两种主要用例: 上下文菜单&#xff1b;例如&#xff0c;右键单击后显示的菜单弹出菜单&#xff1b;例如…

高比例可再生能源电力系统的调峰成本量化与分摊模型(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

VSCode远程调试linux

文章目录前言1. 给从机安装GCC与GDB2. 编写测试 .c文件3. 本地编译生成可执行文件4. VSCode配置4.1 拓展安装4.2 ssh连接与配置4.3 配置debug5. 开启调试前言 这个调试是基于迅为itop3568板子进行调试的&#xff0c;如果你的不是这个板子&#xff0c;其实其他的也差不多流程。…

什么是瀑布流布局?瀑布流式布局的优缺点

瀑布流又称瀑布流式布局&#xff0c;是一种多列等宽不等高的一种页面布局方式。 视觉表现为参差不齐的多栏布局。随着页面滚动条向下滚动&#xff0c;这种布局会不断加载数据并附加至当前的尾部。 是一种多列等宽不等高的一种页面布局方式&#xff0c;用于图片比较复杂&#…

Python每日一练(20230415)

目录 1. 路径总和 II &#x1f31f;&#x1f31f; 2. 两数相除 &#x1f31f;&#x1f31f; 3. 不同的二叉搜索树 II &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

基于小波分解+深度信念网络DBN的脑电信号分类识别

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN的脑电信号分类识别 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,本文用DBN提取特征,用SVM分类,实现二者长处互补 DBN神…

docker在mac-m1芯片部署并启用tomcat

手把手教你使用docker在mac-m1芯片部署并启用tomcat 1&#xff0c;下载docker并安装 登陆官网下载dockr&#xff0c;选择mi芯片的docker下载 下载地址&#xff1a;https://www.docker.com/get-started 2&#xff0c;配置docker的阿里云加速器&#xff08;也可以配置其他加速…

Java_Mybatis:1. 框架概述

目录 1 什么是框架 1.1 框架的概念 1.2 框架要解决的问题 1.3 软件开发的分层重要性 1.4 分层开发下的常见框架 1.5 MyBatis 框架概述 2 JDBC 编程的分析 2.1 jdbc 程序的回顾 2.2 jdbc 问题分析 1 什么是框架 1.1 框架的概念 应用方面&#xff1a;框架&#xff08;Fra…

https://app.hackthebox.com/machines/Squashed

https://app.hackthebox.com/machines/Squashed info collecting ┌──(kwkl㉿kwkl)-[~] └─$ sudo nmap -A 10.10.11.191 -T4 …

吴 军:ChatGPT不算新技术革命,带不来什么新机会

来源: 學人Scholar 吴军&#xff0c;1967年出生&#xff0c;毕业于清华大学和约翰霍普金斯大学&#xff0c;计算机专业博士&#xff0c;前Google高级资深研究员、原腾讯副总裁、硅谷风险投资人。 4月3日晚上&#xff0c;得到直播间邀请到了计算机科学家、自然语言模型专家吴军&…

Docker安装Elasticsearch详细步骤

1 安装elasticsearch 1.1 拉取镜像 docker pull elasticsearch:7.12.11.2 创建挂载目录 mkdir -p /app/elasticsearch/confecho "http.host: 0.0.0.0" >> /app/elasticsearch/conf/elasticsearch.ymlmkdir -p /app/elasticsearch/datamkdir -p /app/elastic…

pyest+appium实现APP自动化测试,思路全总结在这里

目录 01、appium环境搭建 2、搭建pythonpytestappium环境 3、安装pycharm搭建项目编写脚本 4、执行测试 绵薄之力 01、appium环境搭建 安装nodejs http://nodejs.cn/ 为什么要安装nodejs&#xff1f; 因为appium这个工具的服务端是由nodejs语言开发的 安装jdk&#xff…