Log学习--Java原生日志系统JUL的基础使用

2025-11-06 19:31:49

1、Java通过 java.util.logging 包(即JUL)下的各个类提供了原生的日志记录和输出的支持,其中主要有4种类:

1. Formatter : 日志输出格式,这也是一个抽象类,具体子类比如 SimpleFormatter 代表纯文本的简单格式,XMLFormatter 代表XML格式等。

2. Handler :日志输出类,其本身是一个抽象类,具体子类对应不同的日志输出出口,比如 FileHandler 代表日志输出到一个本地文件,ConsoleHandler 代表日志输出到控制台,SocketHandler 代表日志输出到套接字即网络上等。

3. Logger :日志记录类,我们就调用这个类的API进行日志记录

4. Level:定义了各种日志级别。

2、Formatter : 日志输出格式

JUL为我们提供了两种格式,一种是 SimpleFormatter 普通文本格式,一种是 XMLFormatter XML格式,根据自己的需求创建对应的对象即可:

//简单文本格式的Formatter

 

Formatter sf = new SimpleFormatter();

 

//xml格式的Formatter

 

Formatter xf = new XMLFormatter();

Log学习--Java原生日志系统JUL的基础使用

3、Handler :日志输出类

这个类决定了我们的日记最后输出到哪里,JUL 提供了 5 种实现类,我们最常用的就是 FileHandler 和 ConsoleHandler, 一个对应文件一个对应控制台。

//输出到文件的Hander

 

FileHandler fh = new FileHandler(日志文件的路径);

//可以为Handler设置Formatter,默认使用简单文本格式

fh.setFormatter(Formatter对象);

//Handler可以控制输出的日志级别

fh.setLevel(Level.INFO);

//输出到控制台的handler

 

Handler ch = new ConsoleHandler();

//Handler可以控制输出的日志级别

ch.setLevel(Level.INFO);

Log学习--Java原生日志系统JUL的基础使用

4、Logger :日志记录类

定义了Formatter 和 Handler,我们就可以创建最终的日志记录类对象了,我们的实际代码中主要调用这个对象的接口进行日志记录。

// 获取Logger实例,相同名称对应一个实例,通常使用类名

 

Logger logger = Logger.getLogger(日志记录实例名称);

 

// 添加Handler,可以配置多个,将日志输出到多个地方

 

logger.addHandler(Handler对象);

 

logger.addHandler(Handler对象);

 

//指定logger输出的日志级别, 低于该级别的日志不会输出

 

logger.setLevel(Level.INFO); 

Log学习--Java原生日志系统JUL的基础使用

5、Level:日志级别,包含如下值:

ALL : Integer.MIN_VALUE (全部输出)

FINEST :300

FINER :400

FINE :500

CONFIG : 700

INFO :800

WARNING :900

SEVERE :1000

OFF : Integer.MAX_VALUE ( 不输出任何日志)

6、有了上面所有的准备工作,我们就可以在代码中调用 Logger 对象记录日志了,Logger提供了两种记录日志的方式,一种是调用时手动指定日志级别,一种是调用特定级别的方法,比如:

// 手动指定日志级别

logger.log(Level.INFO, "this is a info log");

// 调用特定日志级别对应的方法

logger.info("this is a info log");

JUL 还支持我们在日志中使用标记({数字})和参数,来生成特定的更有意义的日志信息(更多形式可参考截图或自行研究):

logger.log(Level.WARNING, "this is a warn, {0} {1}", new Object[]{"p1", "p2"});

Log学习--Java原生日志系统JUL的基础使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:109
  • 阅读量:125
  • 阅读量:119
  • 阅读量:182
  • 阅读量:123
  • 猜你喜欢