提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
学习自黑马程序员
什么是日志?
日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断
问题的追踪以及理解系统的活动等重要作用。
1 调试日志
软件开发中,我们经常需要去调试程序,做一些信息,状态的输出便于我们查询程序的运行状况。为了
让我们能够更加灵活和方便的控制这些调试的信息,所有我们需要专业的日志技术。java中寻找bug会
需要重现。调试也就是debug 可以在程序运行中暂停程序运行,可以查看程序在运行中的情况。日志主
要是为了更方便的去重现问题。
2 系统日志
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通
过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程
序日志和安全日志
3 日志框架
一、JUL (称Java util Logging)学习
JUL全称Java util Logging是java原生的日志框架
使用时不需要另外引用第三方类库,
相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。
调用关系如下
1 JUL快速入门案例
package com.YYL;
import org.junit.jupiter.api.Test;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JULTest {
@Test
public void testQuick() throws Exception {
// 1.创建日志记录器对象
Logger logger = Logger.getLogger("com.YYL.JULTest");
// 2.日志记录输出
logger.info("hello jul");
logger.log(Level.INFO, "info msg");
String name = "jack";
Integer age = 18;
//使用占位符的方式拼接字符串 更加方便快捷
logger.log(Level.INFO, "用户信息:{0},{1}", new Object[]{name, age});
}
}
2 日志的级别
@Test
public void testLogLevel() throws Exception {
// 1.获取日志对象
Logger logger = Logger.getLogger("com.itheima.log.QuickTest");
// 2.日志记录输出
logger.severe("severe");
logger.warning("warning");
logger.info("info");
logger.config("cofnig");
logger.fine("fine");
logger.finer("finer");
logger.finest("finest");
}
我们发现只看到了info和以上的级别
这代表JUL默认的日志级别是info
3 自定义日志级别
@Test
public void testLogConfig() throws Exception {
// 1.创建日志记录器对象
Logger logger = Logger.getLogger("com.itheima.log.JULTest");
// 一、自定义日志级别
// a.关闭系统默认配置
logger.setUseParentHandlers(false);
// b.创建handler对象
ConsoleHandler consoleHandler = new ConsoleHandler();
// c.创建formatter对象
SimpleFormatter simpleFormatter = new SimpleFormatter();
// d.进行关联
consoleHandler.setFormatter(simpleFormatter);
logger.addHandler(consoleHandler);
// e.设置日志级别
logger.setLevel(Level.ALL);
consoleHandler.setLevel(Level.ALL);
// 二、输出到日志文件
FileHandler fileHandler = new FileHandler("D:\\logs\\JUL\\jul.log");
fileHandler.setFormatter(simpleFormatter);
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");
}
流程大概如下
创建日志对象-- 关闭原有默认handler–
创建自定义的handler 和 format(格式化处理对象) 将其进行关联
再将handler和loger进行关联
设置日志的级别