一、绪论
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);
}
那么各级别日志代表什么 意思呢
下面进行解析。
二 、日志级别解析
boolean isDebugEnabled()
:- 这个方法用于检查是否启用了DEBUG级别的日志记录。如果启用了DEBUG级别的日志,那么调用
debug(String s)
方法时,传入的日志消息将会被记录。如果未启用,则不会记录任何DEBUG级别的日志消息。
- 这个方法用于检查是否启用了DEBUG级别的日志记录。如果启用了DEBUG级别的日志,那么调用
boolean isTraceEnabled()
:- 类似于
isDebugEnabled()
,这个方法用于检查是否启用了TRACE级别的日志记录。TRACE级别通常用于记录非常详细的跟踪信息,比如方法调用的进入和退出。
- 类似于
void error(String s, Throwable e)
:- 这个方法用于记录ERROR级别的日志消息,并附带一个
Throwable
异常对象。这通常用于在发生错误或异常时记录详细的错误信息,包括异常的堆栈跟踪。
- 这个方法用于记录ERROR级别的日志消息,并附带一个
void error(String s)
:- 这是一个重载的方法,用于仅记录ERROR级别的日志消息,而不附带异常对象。这适用于那些没有异常但需要记录错误情况的场景。
void debug(String s)
:- 当DEBUG级别的日志记录被启用时,这个方法用于记录DEBUG级别的日志消息。DEBUG级别的日志通常包含有助于开发人员在调试过程中理解程序行为的信息。
void trace(String s)
:- 当TRACE级别的日志记录被启用时,这个方法用于记录TRACE级别的日志消息。TRACE级别的日志提供了比DEBUG更详细的跟踪信息,可能包括方法调用的具体参数、返回值等。
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