当前位置: 首页 > news >正文

lombok原理 @Slf4j 怎么生成get set log

Lombok是一种Java库,通过注解的方式提供了许多有用的功能,包括生成Getter、Setter、日志等。@Slf4j注解是Lombok中的一种,它用于自动生成日志记录器(Logger)。

下面简要介绍一下Lombok的原理,以及@Slf4j注解的使用:

Lombok原理:

Lombok通过在编译时期,使用注解处理器(Annotation Processor)来生成代码,从而避免了开发者手动编写一些重复性的代码,例如Getter和Setter方法、toString方法、equals方法等。

在使用Lombok的类上加上注解后,Lombok会在编译时扫描这些注解,然后在生成字节码文件时,根据注解生成相应的方法和字段。这样,开发者就能够以更简洁的方式书写Java代码。

@Slf4j注解的使用:

@Slf4j是Lombok提供的一个注解,用于自动生成日志记录器。使用该注解之后,不需要在类中手动声明Logger,Lombok会为你自动创建一个以类名为参数的Logger对象。

例如:

import lombok.extern.slf4j.Slf4j;@Slf4j
public class MyClass {public void myMethod() {log.info("This is a log message");}
}

在上面的例子中,Lombok会自动为MyClass生成一个名为log的Logger对象,然后你就可以使用这个Logger对象进行日志记录。

在这个例子中,@Slf4j注解的作用就是自动生成这个Logger对象,而不需要你手动声明。

需要注意的是,使用@Slf4j注解之前,确保你的项目中已经引入了SLF4J和相应的日志实现,例如Logback。否则,在编译时可能会出现找不到Logger类的情况。


在日志记录中,占位符是一种非常有用的方式,可以动态地将变量值插入到日志消息中,而不需要在日志语句中硬编码这些值。在Java中,使用SLF4J或其他日志框架时,占位符通常用于提高日志记录的性能和可读性。

以下是使用SLF4J的日志占位符的基本用法:

  1. 基本用法:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class Example {private static final Logger log = LoggerFactory.getLogger(Example.class);public static void main(String[] args) {String name = "John";int age = 30;// 使用占位符log.info("User information: Name = {}, Age = {}", name, age);}
    }
    

    在这个例子中,{} 是占位符,它们会被后面传递给info方法的参数所替代。

  2. 带有变量和表达式的占位符:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class Example {private static final Logger log = LoggerFactory.getLogger(Example.class);public static void main(String[] args) {String name = "John";int age = 30;// 带有变量和表达式的占位符log.info("User information: Name = {}, Age = {}, Is Adult = {}", name, age, age >= 18);}
    }
    

    在这个例子中,除了变量之外,还使用了一个表达式(age >= 18)作为占位符的一部分。

  3. 使用参数索引的占位符:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;public class Example {private static final Logger log = LoggerFactory.getLogger(Example.class);public static void main(String[] args) {String name = "John";int age = 30;// 使用参数索引的占位符log.info("User information: Name = {1}, Age = {0}", age, name);}
    }
    

    在这个例子中,通过数字索引(从0开始)指定占位符的替换顺序。

这些例子中的占位符都是用于log.info方法,但类似的占位符语法也适用于其他日志级别,例如debugwarnerror等。

http://www.lryc.cn/news/254495.html

相关文章:

  • 【目标检测】进行实时检测计数时,在摄像头窗口显示实时计数个数
  • SpringBoot第56讲:SpringBoot集成文件 - 集成EasyExcel之Excel导入导出
  • python3安装lifelines
  • shell命令学习(1)——(待完善)
  • 机器的深度强化学习算法可以被诱导
  • 学生成绩管理系统(Java)
  • Modbus数据采集模块是什么?
  • 【网络安全】下载并安装 kali 的虚拟机 版本
  • JREBEL 热部署原理
  • 履带吊,笔记
  • WPF转换器Convert
  • 【刷题】【力扣牛客】反转链表的五种方式——Java
  • 使用Java网络编程,窗口,线程,IO,内部类等实现多人在线聊天1.0
  • 相关教程test
  • mysql知识分享(包含安装卸载)(一)
  • Google Guava 反射工具使用详解
  • MySql MVCC 详解
  • 工业机器视觉megauging(向光有光)使用说明书(三,轻量级的visionpro)
  • Linux 环境下,jdbc连接mysql问题
  • Python读写txt文件数据
  • Linux虚假唤醒
  • 倒计时模块复习
  • k8s(三): 基本概念-ReplicaSet与Deployment
  • Linux 的介绍和云服务器上web 程序部署
  • Oauth2.0 学习
  • Elasticsearch:什么是向量数据库?
  • rename--统一的PRF
  • 010-editor破解(1)
  • Ubuntur编译ROS报错:error PCL requires C++14 or above
  • 17.认识下Docker之docker的核心原理(2)