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对象,
-
使用
ConsoleHandler()构造方法获取控制台Handler对象。 -
使用
Handler.setLevel()设置Handler日志默认级别。 -
使用
Logger.setLevel()设置Logger日志默认级别。 -
使用
Logger.addHandler()将Handler对象加入Logger中 -
使用
logger.setUseParentHandlers(false)设置为不使用父Logger的Handler,防止信息被重复打印,后面会详细说到。
public class JULtest01
{
@Test
public static void main(String[] args)
本文介绍了JAVA内置的日志框架JUL,包括其组件、日志级别、使用方式、自定义配置、日志继承、格式化以及过滤器和异常处理等内容。JUL提供了一种轻量级的日志解决方案,无需依赖第三方库,通过Logger和Handler进行日志管理和输出,支持自定义日志级别、过滤规则和格式。
最低0.47元/天 解锁文章

1567

被折叠的 条评论
为什么被折叠?



