【Spring】_打印Spring日志

目录

1. 打印日志

1.1 方式1:使用System.out.println

1.2 方式2:使用日志对象Logger

1.3 关于日志框架SLF4J

2. 日志级别及其使用

2.1 日志级别

2.2 使用日志级别的方法打印日志信息

3. 使用lombok更简单地打印日志


1. 打印日志

1.1 方式1:使用System.out.println

创建loggerContrller:

package com.example.iocdemo1.Controller;import jakarta.annotation.PostConstruct;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LoggerController {@PostConstructpublic void print(){System.out.println("Print log");}
}

启动程序,日志如下: 

注:(1)@Postconstruct注解通常用于标注初始化操作;

(2)java程序启动的进程ID可以通过任务管理器进行查看:

1.2 方式2:使用日志对象Logger

使用日志工厂LoggerFactory获取日志对象Logger,并打印日志,修改LoggerController类:

package com.example.iocdemo1.Controller;import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LoggerController {private static Logger logger= LoggerFactory.getLogger(LoggerController.class);@PostConstructpublic void print(){System.out.println("Print log");logger.info("logger framework");}
}

启动程序,查看日志如下:

注:(1)Logger和LoggerFactory都属于org.slf4j包,请注意导包时的选择:

(2)getLogger方法的参数就是打印日志的类,通常是当前类定义的:

也可以使用双引号引日志对象的名称作为参数,但并不便于定位类,通常不用。

1.3 关于日志框架SLF4J

1、SLF4J是一个日志框架,但SLF4J不是一个真实的日志框架实现,只是一个日志门面。

具体实现是log4j/log4j2/logback;

2、SLF4J是门面模式的典型应用,门面模式又称外观模式,提供了一个统一的接口,用来访问子系统中的一群接口,主要特征是定义了一个高层接口,让子系统更容易使用;

2. 日志级别及其使用

2.1 日志级别

1、FATAL:致命信息,表示需要立即被处理的系统级错误;

2、ERROR:错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行;

3、WARN:警告信息,不影响使用,但需要注意的问题;

4、INFO:普通信息,用于记录应用程序正常运行时的一些信息;

5、DEBUG:调试信息,用于打印调试时的关键信息;

6、TRACE:追踪信息,比DEBUG更细粒度的信息事件(一般不用);

级别越高,收到的信息越少;

2.2 使用日志级别的方法打印日志信息

编写LoggerController内容如下:

package com.example.iocdemo1.Controller;import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LoggerController {private static Logger logger= LoggerFactory.getLogger(LoggerController.class);@PostConstructpublic void print(){logger.error("Error log");logger.warn("Warn log");logger.info("Info log");logger.debug("Debug log");logger.trace("Trace log");}
}

启动程序查看日志:

注:1、日志对于系统运行信息的反映相对而言是滞后的,FATAL级已无法使用日志打印,故而只提供了其余四种级别的日志输出方法;

2、Spring的默认日志级别为INFO,低于该级别的日志不予打印,故而以上方法仅输出了高于等于INFO等级的ERROR、WARN和INFO等级的日志;

3. 使用lombok更简单地打印日志

在当前打印日志的方法中,在打印日志的类中需创建一个logger对象,这使得打印日志时每次都需对一个类new 一个对象,较为麻烦。lombok提供了更简单的方式:@Slf4j注解。

关于lombok及其导入,详见下文:

Java工具包——Lombok_lombok maven-CSDN博客文章浏览阅读3.2k次,点赞31次,收藏24次。在Spring项目中创建java对象,如果使用手动生成getter、setter、toString等方法提供调用接口,会导致代码修改成本与复杂度大大增加;lombok是一个Java工具库,通过的方式简化了Java的开发;接下来简单介绍lombok的使用方法;_lombok mavenhttps://blog.csdn.net/m0_63299495/article/details/139988632在需要打印日志的类前增加@Slf4j注解,使用该注解后,就可以使用自动生成的日志对象log进行日志的打印:
LoggerController内容如下:

package com.example.iocdemo1.Controller;import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;@Slf4j
@RestController
public class LoggerController {@PostConstructpublic void print(){log.error("Error log");log.warn("Warn log");log.info("Info log");log.debug("Debug log");log.trace("Trace log");}
}

重启程序,观察日志如下:(正确打印)

注:查看@Slf4j注解声明:

在Target目录下查看对应的.class文件:LoggerController.class

可见在编译时@Slf4j就会被处理,创建为一个Logger类创建的对象log;

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据学习之SparkStreaming、PB级百战出行网约车项目一

一.SparkStreaming 163.SparkStreaming概述 Spark Streaming is an extension of the core Spark API that enables scalable, high-throughput, fault-tolerant stream processing of live data streams. Spark Streaming 是核心 Spark API 的扩展,支持实时数据…

【Elasticsearch】Mapping概述

以下是Elasticsearch中提到的关于Mapping的各模块概述: --- 1.Dynamic mapping(动态映射) 动态映射是指Elasticsearch在索引文档时,自动检测字段类型并创建字段映射的过程。当你首次索引一个文档时,Elasticsearch会根…

如何构建一个AI驱动的前端UI组件生成器

前言 本文将教您如何构建一个AI驱动的前端UI组件生成器,它可以帮助您生成Next.js Tailwind CSS UI组件,并提供实现教程。我们将涵盖以下内容: 使用Next.js、TypeScript和Tailwind CSS构建UI组件生成器Web应用程序。 使用CopilotKit将AI功能…

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架

Solon 框架! Solon 是新一代,Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目(最近“杭州六小龙”很火啊,我们也是杭州的哦)。从零开始构建(No Spring、No Java-EE、No Servlet&#…

Linux | 进程相关概念(进程、进程状态、进程优先级、环境变量、进程地址空间)

文章目录 进程概念1、冯诺依曼体系结构2、进程2.1基本概念2.2描述进程-PCB2.3组织进程2.4查看进程2.5通过系统调用获取进程标识符2.6通过系统调用创建进程-fork初识fork の 头文件与返回值fork函数的调用逻辑和底层逻辑 3、进程状态3.1状态3.2进程状态查看命令3.2.1 ps命令3.2.…

超越DeepSeek R1的Moe开源大模型 Qwen2.5-max 和 Qwen Chat Web UI 的发布,阿里搅动AI生态

敲黑板,说重点,最近阿里推出的 Qwen2.5-max 和 Qwen Chat Web UI,将对AI生态又一次冲击。 说冲击,因为 DeepSeek R1的热潮还未散退的情况下,由于服务器压力不能注册新的API,然后价格涨价,服务有…

无公网IP可实现外网访问开发速查备忘录 Quick Reference

Quick Reference 是一款为开发人员准备的快速参考和备忘清单,涵盖了各种编程语言、框架、工具和命令行工具的常用语法和用法。目的就是为了开发人员在开发时方便技术栈查阅,提高开发者的开发效率。 本文将详细的介绍如何利用 Docker 在本地部署 Quick Re…

【ARM】JTAG接口介绍

1、 文档目标 对 JTAG 接口有更多的认识,在遇到关于 JTAG 接口问题时有一些排查的思路。 2、 问题场景 在使用调试器过程时,免不了要接触到 JTAG 接口,当出现连接不上时,就不知道从哪来进行排查。 3、软硬件环境 1 软件版本&am…

两步在 Vite 中配置 Tailwindcss

第一步:安装依赖 npm i -D tailwindcss tailwindcss/vite第二步:引入 tailwindcss 更改配置 // src/main.js import tailwindcss/index// vite.config.js import vue from vitejs/plugin-vue import tailwindcss from tailwindcss/viteexport default …

Threadlocal的实现原理

文章目录 ThreadLocal与Thread关系分析Threadlocal 不支持继承性lnheritableThreadLocal 类 ThreadLocal与Thread关系分析 由该图可知, Thread 类中有一个 threadLocals 和一个 inheritableThreadLocals , 它们 都是 ThreadLocalMap 类型 的变量 &#x…

arm linux下的中断处理过程。

本文基于ast2600 soc来阐述,内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)&#xf…

oracle使用动态sql将多层级组织展平

ERP或者其他企业管理软件中都会有一张组织机构表,可以写固定sql的方式将其展平获取组织表中的字段信息,如负责人、上级组织负责人、分管领导、成立时间等。但是这种方式有个缺陷,就是如果只写到处理4个层级,那么后期层级增多就无法…

layui怎么请求数据

layui怎么请求数据 ​编辑 下次还敢 发布: 2024-04-04 03:30:19 原创 1152人浏览过 Layui 提供四种数据请求方式:$.ajax() Ajax 方式Fetch API 方式layui 内置 Ajax 方式layui 内置请求方式,用于监听提交事件 Layui中请求数据的几种方式…

mybatis-plus逆向code generator pgsql实践

mybatis-plus逆向code generator pgsql实践 环境准备重要工具的版本供参考pom依赖待逆向的SQL 配置文件CodeGenerator配置类配置类说明 环境准备 重要工具的版本 jdk1.8.0_131springboot 2.7.6mybatis-plus 3.5.7pgsql 14.15 供参考pom依赖 <?xml version"1.0&quo…

【IoTDB 线上小课 11】为什么 DeepSeek 要选择开源?

新年新气象&#xff0c;【IoTDB 视频小课】第十一期全新来临&#xff01; 关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源... 一个问题重点&#xff0c;3-5 分钟&#xff0c;我们讲给你听&#xff1a; 开源“加成”再次展现&#xff01; 现在…

Java面试宝典:说下Spring Bean的生命周期?

Java面试宝典专栏范围&#xff1a;JAVA基础&#xff0c;面向对象编程&#xff08;OOP&#xff09;&#xff0c;异常处理&#xff0c;集合框架&#xff0c;Java I/O&#xff0c;多线程编程&#xff0c;设计模式&#xff0c;网络编程&#xff0c;框架和工具等全方位面试题详解 每…

web自动化-浏览器驱动下载

web-UI自动化最终要的一步就是下载安装浏览器驱动&#xff0c;下面是常用浏览器驱动的下载安装地址&#xff0c;以及安装之后如何验证的方法&#xff1a; 一、查看浏览器版本号 通过selenium进行自动化测试过程中&#xff0c;浏览器驱动的版本必须要和浏览器的版本保持一致&am…

PDF另存为图片的一个方法

说明 有时需要把PDF的每一页另存为图片。用Devexpress可以很方便的完成这个功能。 窗体上放置一个PdfViewer。 然后循环每一页 for (int i 1; i < pdfViewer1.PageCount; i) 调用 chg_pdf_to_bmp函数获得图片并保存 chg_pdf_to_bmp中调用了PdfViewer的CreateBitmap函数…

easyexcel快速使用

1.easyexcel EasyExcel是一个基于ava的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel 即通过java完成对excel的读写操作&#xff0c; 上传下载 2.easyexcel写操作 把java类中的对象写入到excel表格中 步骤 1.引入依赖 <depen…

opencv中minAreaRect函数输出角度问题

opencv中minAreaRect函数输出角度问题 新版opencv中minAreaRect函数计算最小外接矩形时&#xff0c;角度范围由旧版的[-90, 0]变为[0, 90]。 cv2.minAreaRect输入&#xff1a;四边形的四个点&#xff08;不要求顺序&#xff09;。 输出&#xff1a;最小外接矩形的中心点坐标x…