|
|
|
@ -4,22 +4,63 @@ import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.slf4j.event.Level;
|
|
|
|
|
|
|
|
|
|
// Log4jHandler类继承自AbstractRunningLogHandler,主要用于处理不同级别的日志记录操作,具体实现了info(信息级别)和error(错误级别)两种常见日志级别的记录方法,
|
|
|
|
|
// 并且依赖于SLF4J框架来实际执行日志输出,将日志信息发送到对应的日志系统(例如Log4j等,具体取决于项目中的日志实现配置)。
|
|
|
|
|
public class Log4jHandler extends AbstractRunningLogHandler {
|
|
|
|
|
|
|
|
|
|
// 通过LoggerFactory获取一个名为Log4jHandler类的Logger实例,后续所有的日志记录操作都将通过这个logger对象来进行,
|
|
|
|
|
// 这样可以方便地按照SLF4J的规范输出不同级别的日志信息到对应的日志输出渠道(如控制台、文件等)。
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(Log4jHandler.class);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 记录信息级别(INFO)的日志,只包含日志消息内容本身,不关联异常信息。
|
|
|
|
|
* 该方法接收要记录的日志消息字符串以及调用类的全限定名作为参数,然后使用获取到的logger对象调用info方法,按照SLF4J的日志记录规范,
|
|
|
|
|
* 将日志消息以INFO级别记录下来,同时传入调用类的全限定名、日志级别(Level.INFO)以及具体的日志消息内容,最后一个参数null表示没有关联的异常信息。
|
|
|
|
|
*
|
|
|
|
|
* @param msg 要记录的日志消息内容,通常是一些对程序运行过程中正常情况的描述信息,比如业务操作的关键步骤提示等。
|
|
|
|
|
* @param fqnOfCallingClass 调用此日志记录方法的类的全限定名,例如 "com.example.MyClass",用于在日志中标识该日志是由哪个具体的类产生的,方便定位和分析日志来源。
|
|
|
|
|
*/
|
|
|
|
|
public void info(String msg, String fqnOfCallingClass) {
|
|
|
|
|
logger.info(fqnOfCallingClass, Level.INFO, msg, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 记录信息级别(INFO)的日志,同时关联异常信息。
|
|
|
|
|
* 接收要记录的日志消息字符串、表示异常情况的Throwable对象以及调用类的全限定名作为参数,利用logger对象的info方法,按照SLF4J的日志记录规范,
|
|
|
|
|
* 将日志消息以INFO级别记录下来,传入调用类的全限定名、日志级别(Level.INFO)、具体的日志消息内容以及对应的异常对象,这样在查看日志时可以获取到详细的异常信息,
|
|
|
|
|
* 便于排查与该异常相关的问题。
|
|
|
|
|
*
|
|
|
|
|
* @param msg 要记录的日志消息内容,可能是对异常相关情况的一些补充说明或者上下文描述等。
|
|
|
|
|
* @param t 表示异常情况的Throwable对象,包含了详细的异常堆栈信息、异常类型以及异常消息等内容,例如在捕获到某个业务异常或者运行时异常时传入对应的异常对象。
|
|
|
|
|
* @param fqnOfCallingClass 调用此日志记录方法的类的全限定名,例如 "com.example.MyClass",用于在日志中标识该日志是由哪个具体的类产生的,方便定位和分析日志来源。
|
|
|
|
|
*/
|
|
|
|
|
public void info(String msg, Throwable t, String fqnOfCallingClass) {
|
|
|
|
|
logger.info(fqnOfCallingClass, Level.INFO, msg, t);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 记录错误级别(ERROR)的日志,只包含日志消息内容本身,不关联异常信息。
|
|
|
|
|
* 此方法接收要记录的日志消息字符串以及调用类的全限定名作为参数,使用logger对象调用error方法,按照SLF4J的日志记录规范,
|
|
|
|
|
* 将日志消息以ERROR级别记录下来,传入调用类的全限定名、日志级别(Level.ERROR)以及具体的日志消息内容,最后一个参数null表示没有关联的异常信息,
|
|
|
|
|
* 用于记录程序运行过程中出现的错误情况,方便后续定位和排查问题。
|
|
|
|
|
*
|
|
|
|
|
* @param msg 要记录的错误相关的日志消息内容,比如业务操作失败的原因描述、系统运行时出现错误的提示等。
|
|
|
|
|
* @param fqnOfCallingClass 调用此日志记录方法的类的全限定名,例如 "com.example.MyClass",用于在日志中标识该日志是由哪个具体的类产生的,方便定位和分析日志来源。
|
|
|
|
|
*/
|
|
|
|
|
public void error(String msg, String fqnOfCallingClass) {
|
|
|
|
|
logger.error(fqnOfCallingClass, Level.ERROR, msg, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 记录错误级别(ERROR)的日志,同时关联异常信息。
|
|
|
|
|
* 接收要记录的日志消息字符串、表示异常情况的Throwable对象以及调用类的全限定名作为参数,通过logger对象的error方法,按照SLF4J的日志记录规范,
|
|
|
|
|
* 将日志消息以ERROR级别记录下来,传入调用类的全限定名、日志级别(Level.ERROR)、具体的日志消息内容以及对应的异常对象,这样在查看日志时可以获取到详细的异常信息,
|
|
|
|
|
* 便于对出现的错误进行深入分析和问题排查。
|
|
|
|
|
*
|
|
|
|
|
* @param msg 要记录的错误相关的日志消息内容,可能是对异常情况的一些补充说明或者上下文描述等。
|
|
|
|
|
* @param t 表示异常情况的Throwable对象,包含了详细的异常堆栈信息、异常类型以及异常消息等内容,例如在捕获到某个业务异常或者运行时异常时传入对应的异常对象。
|
|
|
|
|
* @param fqnOfCallingClass 调用此日志记录方法的类的全限定名,例如 "com.example.MyClass",用于在日志中标识该日志是由哪个具体的类产生的,方便定位和分析日志来源。
|
|
|
|
|
*/
|
|
|
|
|
public void error(String msg, Throwable t, String fqnOfCallingClass) {
|
|
|
|
|
logger.error(fqnOfCallingClass, Level.ERROR, msg, t);
|
|
|
|
|
}
|
|
|
|
|