“JUL 入门”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
Jihongchang(讨论 | 贡献)  (建立内容为“1”的新页面)  | 
				Jihongchang(讨论 | 贡献)   | 
				||
| 第1行: | 第1行: | ||
| − | 1  | + | https://www.bilibili.com/video/BV1iJ411H74S/?p=4  | 
| + | |||
| + | JUL 全称 Java Util Logging,是 Java 原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。  | ||
| + | |||
| + | === 架构介绍 ===  | ||
| + | [[文件:JUL架构图示.png|无|缩略图|813x813像素|链接=https://www.jihongchang.top/index.php/%E6%96%87%E4%BB%B6:JUL%E6%9E%B6%E6%9E%84%E5%9B%BE%E7%A4%BA.png]]  | ||
| + | *Loggers:被称为记录器,应用程序通过获取 Logger 对象,调用其 API 来发布日志消息。Logger 通常是应用程序访问日志系统的入口程序。  | ||
| + | *Appenders:也被称为 Handlers,每个 Logger 都会关联一组 Handlers,Logger 会将日志交给关联 Handlers 处理,由 Handlers 负责将日志做记录。Handlers 在此是一个抽象,其具体的实现决定了日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等。  | ||
| + | *Layouts:也被称为 Formatters,它负责对日志事件中的数据进行转换和格式化。Layouts 决定了数据在一条日志记录中的最终形式。  | ||
| + | *Level:每条日志消息都有一个关联的日志级别。该级别粗略指导了日志消息的重要性和紧迫,可以将 Level 和 Loggers,Appenders 做关联以便于我们过滤消息。  | ||
| + | *Filters:过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。  | ||
| + | 总结一下就是:  | ||
| + | |||
| + | 用户使用 Logger 来进行日志记录,Logger 持有若干个 Handler,日志的输出操作是由 Handler 完成的。  | ||
| + | |||
| + | Handler 在输出日志前,会经过 Filter 的过滤,判断哪些日志级别过滤放行、哪些拦截,  | ||
| + | |||
| + | Handler 会将日志内容输出到指定位置(日志文件、控制台等)。  | ||
| + | |||
| + | Handler 在输出日志时会使用 Layout,对输出内容进行排版。  | ||
| + | |||
| + | === 入门案例 ===  | ||
| + | <syntaxhighlight lang="java">  | ||
| + | package io.github.jihch.log;  | ||
| + | |||
| + | import org.junit.Test;  | ||
| + | |||
| + | import java.util.logging.Level;  | ||
| + | import java.util.logging.Logger;  | ||
| + | |||
| + | public class JULTest {  | ||
| + | |||
| + |     @Test  | ||
| + |     public void testQuick() {  | ||
| + | |||
| + |         //1、创建日志记录器对象  | ||
| + |         Logger logger = Logger.getLogger("io.github.jihch.log.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});  | ||
| + | |||
| + |     }  | ||
| + | |||
| + | }  | ||
| + | |||
| + | </syntaxhighlight><syntaxhighlight lang="console">  | ||
| + | 二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick  | ||
| + | 信息: hello jul  | ||
| + | 二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick  | ||
| + | 信息: info msg  | ||
| + | 二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick  | ||
| + | 信息: 用户信息:jack,18  | ||
| + | </syntaxhighlight>  | ||
2023年2月23日 (四) 01:49的最新版本
https://www.bilibili.com/video/BV1iJ411H74S/?p=4
JUL 全称 Java Util Logging,是 Java 原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。
架构介绍
- Loggers:被称为记录器,应用程序通过获取 Logger 对象,调用其 API 来发布日志消息。Logger 通常是应用程序访问日志系统的入口程序。
 - Appenders:也被称为 Handlers,每个 Logger 都会关联一组 Handlers,Logger 会将日志交给关联 Handlers 处理,由 Handlers 负责将日志做记录。Handlers 在此是一个抽象,其具体的实现决定了日志记录的位置可以是控制台、文件、网络上的其他日志服务或操作系统日志等。
 - Layouts:也被称为 Formatters,它负责对日志事件中的数据进行转换和格式化。Layouts 决定了数据在一条日志记录中的最终形式。
 - Level:每条日志消息都有一个关联的日志级别。该级别粗略指导了日志消息的重要性和紧迫,可以将 Level 和 Loggers,Appenders 做关联以便于我们过滤消息。
 - Filters:过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。
 
总结一下就是:
用户使用 Logger 来进行日志记录,Logger 持有若干个 Handler,日志的输出操作是由 Handler 完成的。
Handler 在输出日志前,会经过 Filter 的过滤,判断哪些日志级别过滤放行、哪些拦截,
Handler 会将日志内容输出到指定位置(日志文件、控制台等)。
Handler 在输出日志时会使用 Layout,对输出内容进行排版。
入门案例
package io.github.jihch.log;
import org.junit.Test;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JULTest {
    @Test
    public void testQuick() {
        //1、创建日志记录器对象
        Logger logger = Logger.getLogger("io.github.jihch.log.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});
    }
}
二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick
信息: hello jul
二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick
信息: info msg
二月 21, 2023 8:33:03 下午 io.github.jihch.JULTest testQuick
信息: 用户信息:jack,18
