首页 > 编程语言 >【开端】Java中Log级别和解析

【开端】Java中Log级别和解析

时间:2024-08-14 09:52:44浏览次数:12  
标签:Java log void String Override 日志 解析 public Log

一、绪论

Java系统中需要对日志进行输出,方便定位系统访问信息,系统报错信息,用于排查系统问题等。我们常常使用的日志有一下一些级别

public interface Log {

  boolean isDebugEnabled();

  boolean isTraceEnabled();

  void error(String s, Throwable e);

  void error(String s);

  void debug(String s);

  void trace(String s);

  void warn(String s);

}

public interface Log {

  boolean isDebugEnabled();

  boolean isTraceEnabled();

  void error(String s, Throwable e);

  void error(String s);

  void debug(String s);

  void trace(String s);

  void warn(String s);

}

那么各级别日志代表什么  意思呢 

下面进行解析。

二 、日志级别解析

 

  1. boolean isDebugEnabled():
    • 这个方法用于检查是否启用了DEBUG级别的日志记录。如果启用了DEBUG级别的日志,那么调用debug(String s)方法时,传入的日志消息将会被记录。如果未启用,则不会记录任何DEBUG级别的日志消息。
  2. boolean isTraceEnabled():
    • 类似于isDebugEnabled(),这个方法用于检查是否启用了TRACE级别的日志记录。TRACE级别通常用于记录非常详细的跟踪信息,比如方法调用的进入和退出。
  3. void error(String s, Throwable e):
    • 这个方法用于记录ERROR级别的日志消息,并附带一个Throwable异常对象。这通常用于在发生错误或异常时记录详细的错误信息,包括异常的堆栈跟踪。
  4. void error(String s):
    • 这是一个重载的方法,用于仅记录ERROR级别的日志消息,而不附带异常对象。这适用于那些没有异常但需要记录错误情况的场景。
  5. void debug(String s):
    • 当DEBUG级别的日志记录被启用时,这个方法用于记录DEBUG级别的日志消息。DEBUG级别的日志通常包含有助于开发人员在调试过程中理解程序行为的信息。
  6. void trace(String s):
    • 当TRACE级别的日志记录被启用时,这个方法用于记录TRACE级别的日志消息。TRACE级别的日志提供了比DEBUG更详细的跟踪信息,可能包括方法调用的具体参数、返回值等。
  7. void warn(String s):
    • 这个方法用于记录WARN级别的日志消息。WARN级别的日志通常用于记录那些潜在的问题或警告信息,这些问题可能不会立即导致程序失败,但应该引起开发人员的注意。

 

三 、日志级别的实现类

public class Log4jImpl implements Log {

  private static final String FQCN = Log4jImpl.class.getName();

  private final Logger log;

  public Log4jImpl(String clazz) {
    log = Logger.getLogger(clazz);
  }

  @Override
  public boolean isDebugEnabled() {
    return log.isDebugEnabled();
  }

  @Override
  public boolean isTraceEnabled() {
    return log.isTraceEnabled();
  }

  @Override
  public void error(String s, Throwable e) {
    log.log(FQCN, Level.ERROR, s, e);
  }

  @Override
  public void error(String s) {
    log.log(FQCN, Level.ERROR, s, null);
  }

  @Override
  public void debug(String s) {
    log.log(FQCN, Level.DEBUG, s, null);
  }

  @Override
  public void trace(String s) {
    log.log(FQCN, Level.TRACE, s, null);
  }

  @Override
  public void warn(String s) {
    log.log(FQCN, Level.WARN, s, null);
  }

}

public class Log4jImpl implements Log {

  private static final String FQCN = Log4jImpl.class.getName();

  private final Logger log;

  public Log4jImpl(String clazz) {
    log = Logger.getLogger(clazz);
  }

  @Override
  public boolean isDebugEnabled() {
    return log.isDebugEnabled();
  }

  @Override
  public boolean isTraceEnabled() {
    return log.isTraceEnabled();
  }

  @Override
  public void error(String s, Throwable e) {
    log.log(FQCN, Level.ERROR, s, e);
  }

  @Override
  public void error(String s) {
    log.log(FQCN, Level.ERROR, s, null);
  }

  @Override
  public void debug(String s) {
    log.log(FQCN, Level.DEBUG, s, null);
  }

  @Override
  public void trace(String s) {
    log.log(FQCN, Level.TRACE, s, null);
  }

  @Override
  public void warn(String s) {
    log.log(FQCN, Level.WARN, s, null);
  }

}

标签:Java,log,void,String,Override,日志,解析,public,Log
From: https://blog.csdn.net/dongjing991/article/details/141182553

相关文章

  • Java计算机毕业设计农村土地资源管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农村经济的快速发展与城镇化进程的加速,农村土地资源的有效管理与合理利用成为亟待解决的问题。传统的手工记录与管理方式已难以满足当前农村土地......
  • Java计算机毕业设计教师档案管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育事业的蓬勃发展,教师作为教育教学的核心力量,其管理效率与质量直接关系到学校的整体运行与教学质量。传统的教师档案管理方式往往依赖于纸质文......
  • Java计算机毕业设计家装公司项目管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速与居民生活品质的提升,家装行业迎来了前所未有的发展机遇与挑战。传统家装公司依赖人工管理项目的方式已难以满足日益增长的客户......
  • java继承与多态
    继承与多态一、概念继承继承是面向对象编程中的一个基本概念,它允许我们定义一个类(称为子类或派生类)来继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以复用父类的代码,同时也可以添加自己的特定属性和方法。在Java中,继承是通过extends关键字来实现的。一个类只......
  • Java小白一文视图教废CSDN大佬们局部内部类和匿名内部类
    内部类一个类的内部又完整地嵌套了另一个类结构,被嵌套的类称为内部类,嵌套其他类的类称为外部类,是我们类的第五大成员,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。类的五大成员:属性、方法、构造器、代码块、内部类内部类快速入门//外部其......
  • 日撸Java三百行(day22:二叉树的存储)
    目录前言一、压缩存储二、层次遍历三、代码实现1.顺序表创建及初始化2.方法创建3.数据测试4.完整的程序代码总结前言关于二叉树的存储,昨天我们提到有顺序存储和链式存储这两种方式,不过非完全二叉树顺序存储的话会造成很大的空间浪费,所以我们昨天使用的是链式存储......
  • 【Java手写RPC框架系列-1】—— 基础知识准备:RPC+Netty
    代码随想录知识星球介绍https://articles.zsxq.com/id_m76jd72243bi.html基于Netty手写实现RPChttps://www.cnblogs.com/mic112/p/15565795.html项目背景与介绍RPC:远程过程调用协议:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序......
  • Java 运算符(详解)
    文章目录一、简介二、算术运算符三、自增自减运算符四、关系运算符五、逻辑运算符六、位运算符六、赋值运算符七、条件运算符八、字符串连接符九、运算符优先级一、简介在Java中,运算符是用来对数据进行操作和处理的符号,这些符号能使得Java程序进行各种数学计算、......
  • Leetcode JAVA刷刷站(20)有效的括号
    一、题目概述二、思路方向     在Java中,要判断一个仅包含括号('(',')','{','}','[',']')的字符串是否有效,你可以使用栈(Stack)数据结构来实现。栈是一种后进先出(LIFO,LastInFirstOut)的数据结构,非常适合用来处理这类问题。以下是具体的实现步骤和代码示例:创......
  • Java并发类的主要API方法-Semaphore
    一、Semaphoreemaphore是Java并发包(java.util.concurrent)中的一个同步工具类,类Semaphore所提供的功能完全就是synchronized关键字的升级版,但它提供的功能更加的强大与方便,主要的作用就是控制线程并发的数量,而这一点,单纯地使用synchronized是做不到的。emaphore它用......