JUL全称Java util Logging是java原生的日志框架,JDK自带 , 使用时不需要另外引用第三方类库 Tomcat目前使用的也是jul日志框架 ,Tomcat运行依赖JDK的支持,也是使用JDK的jul日志框架 日志打印等级配置在jdk的jre中
handlers= java.util.logging.ConsoleHandler
handlers表示的是当前的处理器 由上可以看出我们的是交给了控制台Console来输出
.level= INFO
表示的是设定当前整体的全局日志级别 它只会在INFO和以上级别显示消息。
java.util.logging.ConsoleHandler.level = INFO //定义了自己的级别
如果用户没有设置 默认用全局的 如果用户设置了则用用户的
设置的级别 只会打印本级别当前的日志级别 以及比它更严重的级别
例如:设置INFO 则会打印INFO,WARNING,SEVERE级别
这种修改方式只需要了解一下 这里是更改JDK的配置文件的值
毕竟不可以去更改系统的配置 如果JDK配置文件的值一但被改变
则使用JDK的都会被改变
那我们怎么使用代码的方式去进行配置?
public void testLogConfig() throws Exception {
// 1.创建日志记录器对象
Logger logger = Logger.getLogger("com.itszt.log.JULTest");
// 一、自定义日志级别
// a.关闭系统默认配置 如果不关闭的话会继承JDK中的配置
//关闭则按我们的配置
logger.setUseParentHandlers(false);
// b.创建handler对象 consoleHandler是往控制台打印
ConsoleHandler consoleHandler = new ConsoleHandler();
// c.创建formatter对象 simpleFormatter有一个默认的输出格式
//通过simpleFormatter即可设置我们自定义的格式
SimpleFormatter simpleFormatter = new SimpleFormatter();
// d.进行关联 设置控制台输出的格式
consoleHandler.setFormatter(simpleFormatter);
//将consoleHandler添加到logger记录器中 输出时会输出在控制台上
logger.addHandler(consoleHandler);
// e.设置logger记录器的日志级别
logger.setLevel(Level.ALL); //设置全局级别
consoleHandler.setLevel(Level.ALL); //设置handler打印级别
// 二、输出到日志文件
//会将日志输出到输入的path 要先创建打印的目录
//输出到logdemo.log文件中
//FileHandler关联文件
FileHandler fileHandler = new FileHandler("logs\\logdemo.log");
//FileHandler关联文件设置输出格式simpleFormatter
fileHandler.setFormatter(simpleFormatter);
//再将fileHandler添加到logger记录器当中 输出转到文件当中去
logger.addHandler(fileHandler);
// 2.日志记录输出
//输出会在控制台打印也会在输出到文件中
logger.severe("severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
logger.finer("finer");
logger.finest("finest");
}
再次查看结果:
文件中也输出了正确的结果: