“JUL”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (→入门案例) |
Jihongchang(讨论 | 贡献) (→入门案例) |
||
第61行: | 第61行: | ||
− | + | ==== 日志级别 ==== | |
− | + | {| class="wikitable" | |
− | + | |Integer.MAX_VALUE | |
+ | |OFF | ||
+ | |关闭日志 | ||
+ | |- | ||
+ | |1000 | ||
+ | |SEVERE | ||
+ | |十分严重 | ||
+ | |- | ||
+ | |900 | ||
+ | |WARNING | ||
+ | |警告 | ||
+ | |- | ||
+ | |800 | ||
+ | |INFO | ||
+ | |信息 | ||
+ | |- | ||
+ | |700 | ||
+ | |CONFIG | ||
+ | |配置信息 | ||
+ | |- | ||
+ | |500 | ||
+ | |FINE | ||
+ | |跟踪信息 | ||
+ | |- | ||
+ | |400 | ||
+ | |FINER | ||
+ | |跟踪信息 | ||
+ | |- | ||
+ | |300 | ||
+ | |FINEST | ||
+ | |跟踪信息 | ||
+ | |- | ||
+ | |Integer.MIN_VALUE | ||
+ | |ALL | ||
+ | |记录所有日志 | ||
+ | |} | ||
+ | 可以为每个 logger 对象设置一个日志级别,每个级别都对应一个 int 值,小于等于这个值的日志就会被记录 | ||
2023年2月21日 (二) 12:30的版本
JUL 全称 Java Util Logging,是 Java 原生的日志框架,使用时不需要另外引用第三方类库,相对其他日志框架使用方便,学习简单,能够在小型应用中灵活使用。
JUL 入门
架构介绍
- 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() throws Exception {
//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});
}
}
日志级别
Integer.MAX_VALUE | OFF | 关闭日志 |
1000 | SEVERE | 十分严重 |
900 | WARNING | 警告 |
800 | INFO | 信息 |
700 | CONFIG | 配置信息 |
500 | FINE | 跟踪信息 |
400 | FINER | 跟踪信息 |
300 | FINEST | 跟踪信息 |
Integer.MIN_VALUE | ALL | 记录所有日志 |
可以为每个 logger 对象设置一个日志级别,每个级别都对应一个 int 值,小于等于这个值的日志就会被记录