日志实现框架的基本用法

这篇博客介绍了Java中三种常见的日志实现框架:JUL(Java Util Logging)、log4j和Logback。分别阐述了它们的使用方法,包括JUL的日志处理器如StreamHandler、ConsoleHandler、FileHandler等,以及log4j和Logback的配置,如何将日志输出到控制台和文件。内容详细解释了日志框架的核心组件和工作流程。
摘要由CSDN通过智能技术生成

日志实现框架的基本用法


 

  • 1. Logging (java自带的日志框架——JUL)

  • 2. log4j

  • 3. Logback

1. Logging (java自带的日志框架——JUL)

使用JUL不需要导入依赖,因为是继承自JDK内部的,使用的时候只需要进行简单的导包就好了。

日志功能的实现基本靠一下几个组件来完成:

  • Loggers: Logger负责捕捉事件并将其发送给合适的Appender

  • Appenders:也称为Handlers,负责从Logger中取出日志消息,并使用Layout来格式化消息,然后将消息发送出去,比如发送到控制台、文件或其他日志收集系统。

  • Layouts: 也称为Formatters,负责对日志事件进中的数据进行转换和格式化。

  • Filters: 过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。

  • Formatter: 输出格式控制

总结一下就是:用户使用Logger来进行日志记录,Logger持有若干个Handler,日志的输出操作是由Handler完成的。在Handler在输出日志前,会经过Filter的过滤,判断代码是否可以继续执行,Filter返回false,日志方法return,Handler不会处理;Filter返回true,则继续向下执行,Handler会将日志内容输出到指定位置(日志文件、控制台等)。Handler在输出日志时会使用Layout,将输出内容进行排版。

1. JUL提供多种日志处理器

  • StreamHandler:用于将格式化记录写入OutputStream的简单处理程序。

  • ConsoleHandler:用于将格式化记录写入System.err的简单处理程序

  • FileHandler:将格式化日志记录写入单个文件或一组旋转日志文件的处理程序。

  • SocketHandler:将格式化日志记录写入远程TCP端口的处理程序。

  • MemoryHandler:缓冲内存中日志记录的处理程序。

2. JUL提供了两种日志输出格式

- SimpleFormatter:写简短的“人类可读”日志记录摘要。
- XMLFormatter:写入详细的XML结构信息。

3. JUL的LogManager

LogManager 被称为Logger的管理器,当我们获取Logger本质是从LogManager获取,LogManager内部通过LoggerContext类对象来存储logger,并维护logger之间的父子关系。实现原理是将每个Looger封装为LogNode节点,存在在一个树状结构中。

该框架的简单使用如下所示

//1. 获取日志对象
Logger logger = Logger.getLogger(String.valueOf(getClass()));
// a. 关闭系统默认配置
logger.setUseParentHandlers(false);
// b. 创建Handler
ConsoleHandler consoleHandler = new ConsoleHandler();
// c. 创建formatter对象
// 作用: 用来格式化LogRecord的
SimpleFormatter formatter = new SimpleFormatter();
// d. 进行关联(绑定日志的处理器、设置日志的输出格式)
logger.addHandler(consoleHandler);
consoleHandler.setFormatter(formatter);
//2. 设置日志级别
logger.setLevel(Level.ALL);
consoleHandler.setLevel(Level.ALL);
​
​
/*日志输出简写形式,有不同级别*/
logger.severe("severe log");            
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值