JUL日志系统
我们为什么需要日志系统?
我们之前一直都在使用System.out.println
来打印信息,但是,如果项目中存在大量的控制台输出语句,会显得很凌乱,而且日志的粒度是不够细的,假如我们现在希望,项目只在debug的情况下打印某些日志,而在实际运行时不打印日志,采用直接输出的方式就很难实现了,因此我们需要使用日志框架来规范化日志输出。
而JDK为我们提供了一个自带的日志框架,位于java.util.logging
包下,我们可以使用此框架来实现日志的规范化打印,使用起来非常简单:
public class JUL{
public static void main(String[] args) {
// 首先获取日志打印器
Logger logger= Logger.getLogger(JUL.class.getName());//这里是类名
// 调用info来输出一个普通的信息,直接填写字符串即可
logger.info("我是普通的日志");
}
}
我们可以在主类中使用日志打印,得到日志的打印结果:
JUL日志讲解
日志分为7个级别
,详细信息我们可以在Level类
中查看:
- SEVERE(最高值)- 一般用于代表严重错误
- WARNING - 一般用于表示某些警告,但是不足以判断为错误
- INFO (默认级别) - 常规消息
- CONFIG
- FINE
- FINER
- FINEST(最低值)
我们之前通过info方法直接输出的结果就是使用的默认级别的日志,我们可以通过log方法来设定该条日志的输出级别:
public class JUL {
public static void main(String[] args) {
Logger logger= Logger.getLogger(JUL.class.getName());//这里是类名
logger.log(Level.SEVERE,"出现严重错误");
logger.log(Level.WARNING,"警告内容");
logger.log(Level.INFO,"普通日志信息");
logger.info("普通日志信息");//和logger.log(Level.INFO,"普通日志信息");功能一样
logger.log(Level.CONFIG,"级别低于普通日志信息");//等级低于普通日志,不会输出在控制台。
}
}
我们发现,级别低于默认级别的日志信息,无法输出到控制台