尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Spring Boot 项目三种打印日志的方法详解。Logger,log,logger 解读。
目录一. 打印日志的常见三种方法1.1 手动创建 Logger 对象基于SLF4J API1.2 使用 Lombok 插件的 Slf4j 注解1.3 使用 Spring 的 Log 接口使用频率较低二. 常见的 Loggerloggerlog是有什么关系吗三. 日志的级别和推荐级别一. 打印日志的常见三种方法1.1 手动创建 Logger 对象基于SLF4J API第一种方法就是手动创建 logger 日志对象直接通过 LoggerFactory 日志工厂创建即可使用 Logger 类型来接收这里实例对象就叫 logger。SLF4J 是日志门面Facade它提供统一的日志接口不直接实现日志功能。核心类org.slf4j.Logger是 SLF4J 的核心接口通过LoggerFactory.getLogger()创建实例。打印日志也可以单个或多个参数具体实例如下图注意每个{}对应一个参数即可并且参数顺序要对的上。import com.markerhub.entity.User; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.time.LocalDateTime; public class MyClass { // 通过 LoggerFactory 日志工厂创建日志对象 private static final Logger logger LoggerFactory.getLogger(MyClass.class); public static void main(String[] args) { // 用法一单个参数 logger 日志打印 String message abcde; logger.info(这是手动创建的 logger 对象打出的日志打印单个参数{}, message); // 用法二多个参数 logger 日志打印 int number 100; String message2 abcdefg; long time 1000000000000000000L; logger.info(这是手动创建的 logger 对象打出的日志打印多个参数{},{},{}, number, message2, time); // 用法三对象参数 logger 日志打印 User user1 new User(); user1.setUsername(zhangsna); user1.setPassword(123456); user1.setCreated(LocalDateTime.now()); user1.setEmail(123456qq.com); user1.setStatus(1); logger.info(这是手动创建的 logger 对象打出的日志打印对象参数{}, user1); logger.debug(debug 日志); logger.error(error 日志); } }运行程序如下控制台打印所示可以看出 info 就是普通的日志debug 是调试日志error 是错误日志。这里之所以有颜色区分是因为小编使用了插件插件名称Grep Console有需要的小伙伴可以搜索看下使用教程。1.2使用 Lombok 插件的 Slf4j 注解第二种方法最简单直接使用 Slf4j 注解但需要注意IDEA中需要安装了 Lombok 插件并且你的 spring boot 项目中引用了 lombok 依赖。Slf4j 是lombok插件提供的一个注解用于自动生成 SLF4J 的Logger实例减少样板代码。其底层还是通过第一种方式去新建的 logger 对象。dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId /dependency如下代码注解在类的头上添加 Slf4j 注解即可然后就可以在本类的任意位置直接显式调用 log 对象不需要再自行创建非常方便。import com.markerhub.entity.User; import lombok.extern.slf4j.Slf4j; import java.time.LocalDateTime; Slf4j public class MyClass { public static void main(String[] args) { // 用法一单个参数 logger 日志打印 String message abcde; log.info(这是 Slf4j 注解的 log 对象打出的日志打印单个参数{}, message); // 用法二多个参数 logger 日志打印 int number 100; String message2 abcdefg; long time 1000000000000000000L; log.info(这是 Slf4j 注解的 log 对象打出的日志打印多个参数{},{},{}, number, message2, time); // 用法三对象参数 logger 日志打印 User user1 new User(); user1.setUsername(zhangsna); user1.setPassword(123456); user1.setCreated(LocalDateTime.now()); user1.setEmail(123456qq.com); user1.setStatus(1); log.info(这是 Slf4j 注解的 log 对象打出的日志打印对象参数{}, user1); log.debug(debug 日志); log.error(error 日志); } }运行程序如下图和上面的 logger 对象效果是完全一样的。1.3使用 Spring 的 Log 接口使用频率较低如下代码所示Spring 自身提供了Log接口也可以创建日志对象。import com.markerhub.entity.User; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.time.LocalDateTime; public class MyClass { private static final Log logger LogFactory.getLog(MyClass.class); public static void main(String[] args) { // 用法一单个参数 logger 日志打印 String message abcde; logger.info(这是 Slf4j 注解的 log 对象打出的日志打印单个参数{},message); // 用法二多个参数 logger 日志打印 int number 100; String message2 abcdefg; long time 1000000000000000000L; logger.info(这是 Slf4j 注解的 log 对象打出的日志打印多个参数{},{},{}, number, message2, time); // 用法三对象参数 logger 日志打印 User user1 new User(); user1.setUsername(zhangsna); user1.setPassword(123456); user1.setCreated(LocalDateTime.now()); user1.setEmail(123456qq.com); user1.setStatus(1); logger.info(这是 Slf4j 注解的 log 对象打出的日志打印对象参数{}, user1); logger.debug(debug 日志); logger.error(error 日志); } }但是 Spring 提供的 logger 对象无法像前两种一样输出参数值这一点其实是不太友好的不过 Spring 提供的这种日志输出方式基本也没人使用同学们作为了解即可主要还是前两种用的比较多。二. 常见的 Loggerloggerlog是有什么关系吗1Logger 是SLF4J提供的日志接口用于创建日志对象如LoggerFactory.getLogger()。需要手动实例化。2log 是通过Slf4j注解生成的变量名本质还是一个Logger实例。3logger 没有特殊含义只是采用SLF4J提供的日志接口创建对象时常常见对象命名为 logger 而已。三. 日志的级别和推荐级别如以下表格所示日志的详细程度由高到低。一般情况下日志输出的详细越耗费系统性能所以不建议将日志输出特别详细适中即可大部分都是选择 INFO 级别也推荐大家尽量选择 INFO 或 DEBUG。级别严重性适用场景生产环境建议开发环境建议TRACE最低详细追踪程序执行流程关闭按需开启DEBUG低调试代码逻辑和变量状态关闭开启INFO中监控应用运行状态和关键操作开启开启WARN较高潜在问题不影响程序运行开启开启ERROR高功能错误需人工干预开启开启FATAL最高致命错误程序无法继续运行开启开启日志级别的设置基本在配置文件中设置的方式如下# 设置全局日志级别 logging.level.rootinfo # 设置特定包的日志级别 logging.level.com.example.myappdebug # 自定义日志输出格式和文件路径 logging.pattern.console%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n logging.file.nameapp.log
RELATED

相关推荐

告别黑苹果配置烦恼:OpCore Simplify一键EFI生成终极指南

告别黑苹果配置烦恼:OpCore Simplify一键EFI生成终极指南

告别黑苹果配置烦恼:OpCore Simplify一键EFI生成终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置感到头疼…

📅 2026/11/1 10:20:46
HASH索引,AVL树,B树,B+树的区别?

HASH索引,AVL树,B树,B+树的区别?

目录 一. 什么是 Hash 1.1 Hash 函数 1.2 Hash 碰撞 1.3 HashMap 的时间复杂度 二. AVL树 2.1 简单了解AVL树 2.2 AVL树的时间复杂度 2.3 AVL树的缺点 三. B 树 四. B 树 五. 为什么数据库不采用哈希表存储数据呢? 六. 为什么数据库不采取B树的结构存储…

📅 2026/11/10 12:29:37
Axure RP中文语言包终极指南:5分钟实现界面完全汉化

Axure RP中文语言包终极指南:5分钟实现界面完全汉化

Axure RP中文语言包终极指南:5分钟实现界面完全汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的…

📅 2026/9/12 12:51:37
MORE NEWS

更多资讯

📰

阿克陶县哪里报电工证怎么报名 电工证考试一次过有方法

阿克陶县哪里报电工证怎么报名 电工证考试一次过有方法 怕考不过白交培训费?阿克陶县电工证报名门槛高吗?很多人以为只要交钱就能拿证,其实不然。我带过不少从阿克陶县来的新手,结果很多人因为不了解流程,交了钱还被培训机构坑了。今天我就用一个真实案…

📰

福建的电工证通用吗 考试多少钱 工地太忙怎么搞定

福建的电工证通用吗 考试多少钱 工地太忙怎么搞定 工地太忙根本没时间复习考试,福建的电工证通用吗?你是不是也经常被这个问题困扰,手里拿着证却不知道在哪儿能用,又怕考试花冤枉钱,还担心自己考不过?别急,这篇文章就是为像你这样的工地电工量身打造…

📰

汉口低压电工证培训机构值不值得考?证书过期了不知道怎么复审延期怎么办

汉口低压电工证培训机构值不值得考?证书过期了不知道怎么复审延期怎么办 你是不是也遇到过这种情况:手头的低压电工证眼看就要到期了,却不知道该怎么复审?网上搜了一堆信息,结果越看越迷糊?别急,这篇内容就从【汉口低压电工证培训机构】出发,帮你理清…

📰

电工大专文凭电工证怎么转异地 电子证书怎么操作最省事

电工大专文凭电工证怎么转异地 电子证书怎么操作最省事 之前考的证在外省能不能转过来?你不是一个人,这是很多从外地过来打工或者转岗的电工都关心的问题。特别是持有着 电工大专文凭电工证…

📰

电工证可以托人代审吗全国通用的证书怎么考更稳妥

电工证可以托人代审吗全国通用的证书怎么考更稳妥 实操考试心里没底怕挂科,尤其是像我们这种在工地干活的,考个电工证本来就是刚需,可偏偏一到实操考试就紧张,怕操作不熟练、怕被监考老师挑毛病。更让人头疼的是,有些人听说电工证可以托人代审,搞得人心…

📰

常德高压电工证多少钱 2026河南最新政策怎么影响你

常德高压电工证多少钱 2026河南最新政策怎么影响你 怕考不过白交培训费?常德高压电工证多少钱?这可能是很多想考证的人最关心的问题。2026年河南最新政策调整,不仅影响考试流程,还直接关联到费用标准和证书含金量。如果你是新乡公路工程行业的从…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬