【每天学个新注解】Day 3 Lombok注解简解(二)—@Log

@Log

自动创建并初始化日志记录器
日志系列注解包括:@CommonsLog、@Flogger、@JBossLog、@Log、@Log4j、@Log4j2、@Slf4j、@XSlf4j、@CustomLog,对应于不同的日志框架。每个注解都会在编译时生成一个名为 log 的静态字段,该字段被初始化为对应的日志框架的 Logger 实例。

@CommonsLog
Creates private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Flogger
Creates private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
@JBossLog
Creates private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
@Log
Creates private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
Creates private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2
Creates private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
Creates private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
Creates private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
@CustomLog
Creates private static final com.foo.your.Logger log = com.foo.your.LoggerFactory.createYourLogger(LogExample.class);

1、如何使用

  • 为每个类添加重复的日志记录器代码时,可以用@Log注解代替,根据项目架构选取的日志实现选择具体的日志注解。
    @CustomLog:区分场景日志,单独的日志记录器来采集日志。可以将多个日志记录器整合在一起,也可以将自动定义的日志处理器整合到一起,实现一个注解通过不通代码代码将日志不同位置或者不同格式进行输出。

2、代码示例

例:推荐使用 @Slf4j 注解。
SLF4J 是一个抽象的日志框架,它可以在运行时绑定到具体的日志实现(例如 Logback、Log4j2 等),无需管项目中具体使用的日志框架。

@Slf4j
@ToString
public class People {private String name;private int age;private String sex;public void testLog() {log.info(toString());}
}

编译后:自动生成了日志记录器。
在这里插入图片描述

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

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

相关文章

【小白向】怎么去除视频水印?HitPaw帮你轻松解决

序言 HitPaw是一款优秀的去除视频水印的工具。 特点:不仅仅能够去除图片、视频里的固定水印,还能去除移动水印。 尤其是它的AI去水印功能,效果非常好。 极简使用教程 下载安装 HitPaw需要在电脑上安装软件才能使用。 支持Windows系统和…

基于SpringBoot+Vue+MySQL的旅游推荐管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着社会的快速发展和人民生活水平的显著提高,旅游已成为人们休闲娱乐的重要方式。然而,面对海量的旅游信息和多样化的旅游需求,如何高效地管理和推荐旅游资源成为了一个亟待解决的问题。因此…

JavaSE--IO流总览03:复制照片案例,解决关闭流异常的方法

概述:本篇主要是讲述根据上一篇的知识完成一个小需求:图片的复制,以及关闭流的异常以及解决方法 一.照片的复制: 注意:字节流非常适合做一切文件的复制作 ,任何文件的底层都是字节 字节流做复制 是一字不…

MODELS 2024:闪现奥地利,现场直击报道

周末出逃!小编闪现至奥地利林茨,亲临第27届MODELS 2024国际会议,以第一视角引领你深入会议现场,领略其独特风采。利用午饭时间,小编紧急码字,只为第一时间将热点资讯呈现给你~ 会议介绍: MODEL…

Cilium + ebpf 系列文章-ebpf-map(二)

前言: 上一章节讲述了什么是:ebpf. Cilium + ebpf 系列文章-什么是ebpf?(一)-CSDN博客一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。3、当你执行l s操作时,会调用open的系统调…

线程对象的生命周期、线程等待和分离

线程对象的生命周期、线程等待和分离 #include <iostream> #include<thread> using namespace std;bool is_exit false;//用于判断主线程是否退出 void ThreadMain() {cout << "begin sub thread main ID: " << this_thread::get_id() &l…

难题妙解——前K个高频单词

1.题目解析 692.前K个高频单词 本题⽬我们利⽤map统计出次数以后&#xff0c;返回的答案应该按单词出现频率由⾼到低排序&#xff0c;有⼀个特殊要 求&#xff0c;如果不同的单词有相同出现频率&#xff0c;按字典顺序排序 2.算法原理 2.1思路一 ⽤排序找前k个单词&#xff0c…

栈的操作:进栈,出栈,读栈顶元素

代码&#xff1a; #include<iostream> using namespace std; template<class T> class sq_Stack {private:int mm;int top;T *s;public:sq_Stack(int);void prt_sq_Stack();int flag_sq_Stack();void ins_sq_Stack(T);T del_sq_Stack();T read_sq_Stack(); }; tem…

【自学笔记】支持向量机(3)——软间隔

引入 上一回解决了SVM在曲线边界的上的使用&#xff0c;使得非线性数据集也能得到正确的分类。然而&#xff0c;对于一个大数据集来说&#xff0c;极有可能大体呈线性分类趋势&#xff0c;但是边界处混杂&#xff0c;若仍采用原来的方式&#xff0c;会得到极其复杂的超平面边界…

Linux: filesystem:resize2fs: error: superblock checksum does not match

最近遇到一个resize2fs命令的错误:superblock checksum does not match superblock while trying to open。 而且问题的出现有随机性。 <qrms6-oam-b:root>/root: #rpm -qf /usr

通信工程学习:什么是VM虚拟机

VM&#xff1a;虚拟机 VM虚拟机&#xff08;Virtual Machine&#xff09;是一种通过软件模拟的计算机系统&#xff0c;它能够在物理计算机上模拟并运行多个独立的虚拟计算机系统。以下是关于VM虚拟机的详细解释&#xff1a; 一、VM虚拟机的定义与原理 定义&#xff1a; VM虚拟…

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决

问题描述 之所以说是填坑&#xff0c;是因为之前写了一篇关于这个双核数据采集系统的调试记录&#xff0c;问题的具体表现是系统会在运行一段时间后&#xff08;随机不定时&#xff0c;长了可能将近两小时&#xff0c;短则几分钟&#xff09;&#xff0c;突然间就不向电脑发送数…

Redis渐进式遍历

我们知道&#xff0c;keys* 是一次性把所有的key都获取到&#xff0c;这个操作太危险&#xff0c;可能会一次性得到太多的key而阻塞服务器。但是通过渐进式遍历&#xff0c;既能够获取到所有的key&#xff0c;又能不会卡死服务器。 redis使用scan命令进行渐进式遍历&#xff0…

对条件语言模型(Conditional Language Model)的目标函数的理解

在翻看LORA这篇论文的时候&#xff0c;忽然对条件语言模型优化的目标函数产生了一些疑问&#xff0c;下面是理解。 这个目标函数描述了条件语言模型&#xff08;Conditional Language Model&#xff09;的目标&#xff0c;即通过最大化对数似然估计来学习参数( Φ \Phi Φ)&a…

MySQL和SQL的区别简单了解和分析使用以及个人总结

MySQL的基本了解 运行环境&#xff0c;这是一种后台运行的服务&#xff0c;想要使用必须打开后台服务&#xff0c;这个后台服务启动的名字是在安装中定义的如下图&#xff08;个人定义MySQL88&#xff09;区分大小写图片来源 可以使用命令net start/stop 服务名&#xff0c;开…

【高并发内存池】基本框架 + 固定长度内存池实现 1

高并发内存池 1. 基本框架2. 定长内存池的实现2.1 介绍定长内存池2.2 T* New()2.3 void Delete(T* obj) 3. 源码&#xff08;附赠测试&#xff09;4. 总结 1. 基本框架 高并发内存池主要由三个部分构成&#xff1a; 1.thread cache:用于小于256KB的内存的分配。线程缓存是每个…

流域碳中和技术

随着全球气候变化的加剧&#xff0c;碳中和已成为实现可持续发展的重要目标之一。碳中和不仅仅是能源和工业领域的调整&#xff0c;它涉及整个生态系统的转型与再生。在这一过程中&#xff0c;流域的生态系统作为水、土、生物多样性等自然资源的集成体&#xff0c;扮演着至关重…

华为高级交换技术笔记 2024-2025

2024-2025 一、9/31.通信模型和封装2.以太网3.MAC地址4.以太网帧5.MAC地址表的建立 二、9/61.交换机的数据的处理2.以太网帧的分类3.广播域4.vlan技术开发背景 一、9/3 1.通信模型和封装 2.以太网 3.MAC地址 4.以太网帧 5.MAC地址表的建立 二、9/6 1.交换机的数据的处理 2.以…

【含2天数 / B】

题目 代码 #include <bits/stdc.h> using namespace std; int day[] {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool has_2(int x) {while (x){if (x % 10 2)return true;x / 10;}return false; } bool check(int y, int m, int d) {return has_2(y) ||…

十二、JDK17的GC调优策略

文章目录 一、JVM有哪些参数可以调&#xff1f;二、从RocketMQ学习常用GC调优三部曲三、基于JDK17优化JVM内存布局1、定制堆内存大小2、定制非堆内存大小设置元空间设置线程栈空间设置热点代码缓存空间应用程序类数据共享 四、基于JDK17定制JVM的GC参数G1重要参数ZGC重要参数 五…