java 日志管理源码_Java源码初探_logging日志模块实现

本文详细介绍了Java日志管理的源码,主要包括LogManager、LoggerContext、Logger、Handler、Formatter和Filter等核心组件的作用和实现。通过配置文件初始化LogManager,设置日志级别、格式和输出位置。Logger的获取、日志打印过程以及过滤器的使用,使得日志管理更加灵活和可控。
摘要由CSDN通过智能技术生成

一、用途

程序中记录日志,打印到控制台、文件等方式,记录过程可根据日志级别做筛选,日志格式可以自定义。

大概结构如下所示:

916ffcfbc6d76c1d5f7050f7f6080449.png

简要说明各个模块:

(1) LogManager:管理LoggerContext及Logger,可以添加、获取Logger。

(2) LoggerContext: 保存所有Logger,用于添加及获取Logger,由LoggerManager管理。LoggerContext中同时保存了Logger的弱引用,在释放Logger时使用到。

(3) Logger: 记录日志的对象,提供接口实现对日志消息以不同的日志级别进行记录,管理Handler、Formatter、Filter等。

(4) Handler: 记录日志真正的对象,包括FileHandler(记录到文件)、ConsoleHandler(记录到控制台)、StreamHandler(记录到流)、SocketHandler(通过socket发送日志?)等。

(5) Formatter: 处理日志的格式,包括SimpleFormatter(简单格式记录,显示时间、级别、线程、日志信息等)、XMLFormatter(以xml格式记录日志)等。

(6) Filter: 实现日志的过滤功能,通过自定义Filter,实现对某些日志的过滤处理。

(7) ErrorManager: 记录日志出错时的处理对象?

(8) LogRecord: 对日志消息的抽象。

二、详细介绍(结合源码)

详细描述如下:

(1)日志管理:

ca8777da5945702057874264d0004895.png

LoggerManager主要用来管理LogContext以及logger。

LoggerManager维护变量主要有:

(a) LogManager manager

manager对象单例,用于LogManager内部其他方法调用。在静态构造函数中实例化,在getLogManager()方法被调用时初始化:

1 public staticLogManager getLogManager() {2 if (manager != null) {3 manager.ensureLogManagerInitialized();4 }5 returnmanager;6 }7

8

9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值