JAVA日志框架:JUL

本文介绍了JAVA内置的日志框架JUL,包括其组件、日志级别、使用方式、自定义配置、日志继承、格式化以及过滤器和异常处理等内容。JUL提供了一种轻量级的日志解决方案,无需依赖第三方库,通过Logger和Handler进行日志管理和输出,支持自定义日志级别、过滤规则和格式。
摘要由CSDN通过智能技术生成

JAVA日志框架:JUL

1.什么是JUL?

JUL是Java自带的一款轻量级原始日志框架,使用时不需要引用第三方类库,相对其他日志框架使用方便,学习简单。

2.JUL组件介绍:

Application:我们的应用程序。 LogManager:日志管理器。 Logger:日志记录器,应用程序通过获取Logger对象,调用其中的API来发布日志,Logger通常是程序日志系统的入口程序。 Level:日志记录器,每条日志都有一个消息紧迫性也就是日志级别,我们将Level作用域Logger和Handler,以便于我们过滤消息。 Filter:过滤器,根据规则过滤某些日志信息。 Handlers:每个Logger都会关联某些日志信息。Handlers,Logger将信息交给Handler处理,有Handler做日志记录,Handler是一个抽象,其具体的实现决定了日志记录的位置,可以是控制台、文件、网络上的日志或操作系统日志等。 Formatter:日志格式化器,负责对日志进行格式化处理,决定了输出日志的最终形式。

3.流程:

使用Logger来记录日志,Logger持有若干个Handler,日志的输出操作是由Handler完成的,在Handler输出之前,先由Filter进行过滤,最终被保留下来的信息交由Layout进行排版。

日志级别(从高到低):

OFF:所有信息都不打印 SEVER:错误信息,一般是记录导致系统崩溃的信息。 WARNING:警告信息,一般记录程序存在的问题,该问题不会导致程序终止,但确值得关注。 INFO:普通信息,一般记录一些连接信息,访问信息等(这是JUL默认级别)。 CONFIG配置信息,一般用于记录加载配置文件信息。 FINEDebug日志信息,一般用于记录程序的运行状态,执行流程的参数的信息等。 FINER于FINE一致,只是记录粒度高一些。 FINEST与上面两个类似,只是记录粒度更高 ALL:打印所有信息

使用:

Logger对象通过getLogger()工厂方法获得,这将创建一个新的Logger或返回一个适合的现有的Logger,记录的消息将会被转发到Handler对象,该对象可以将消息转发到各种地方,比如控制台、文件等。该方法接收一个参数为Logger的名称。

public class JULtest01
{
    @Test
    public static void main(String[] args)
    {
        Logger logger = Logger.getLogger("JULTest.JULtest01");
        logger.severe("severe级别的信息");
        logger.warning("Warning级别的信息");
        logger.info("info级别的信息");
        logger.fine("fine级别的信息");
        logger.finer("finer级别的信息");
        logger.finest("finest级别的信息");
    }
}

输出如图:

注意:当Logger或Handler设置了日志级别后,低于该日志级别的日志信息将不会被打印,由于默认级别为INFO所以INFO级别以下的日志将不会被打印。

自定义日志配置

由于日志的打印方向是由Handler对象控制的,所以自定义日志配置的核心就是配置Handler对象,

  1. 使用ConsoleHandler()构造方法获取控制台Handler对象。

  2. 使用Handler.setLevel()设置Handler日志默认级别。

  3. 使用Logger.setLevel()设置Logger日志默认级别。

  4. 使用Logger.addHandler()将Handler对象加入Logger中

  5. 使用logger.setUseParentHandlers(false)设置为不使用父Logger的Handler,防止信息被重复打印,后面会详细说到。

public class JULtest01
{
    @Test
    public static void main(String[] args)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值