Java Logging API - Tutorial

本文将介绍JDK中的Logging API在Java程序中的使用,并在后面附带了一个创建HTML logger的例子

目录

1.概述
1.1.Java中的Logging
1.2. 创建一个logger
1.3. Log等级
1.4. Handler
1.5. Formatter
1.6. Log Manager
1.7.最佳实践
2.样例
3. 致谢
4. 问题与讨论
5. 相关文章

1.Overview

1.1. Java中的Logging

JDK中有Java Logging API。通过logger您不仅可以将日志信息集中到一个文件中来报告错误,而且可以在日志中添加辅助信息。这个Logging API允许您充分定制,十分灵活。

1.2. 创建一个logger

包 java.util.logging提供了日志的功能,可以使用类似于下面的代码来创建一个logger:

1.3.Level

Log的等级反映了问题的严重程度。Level类用于决定哪些信息被写入到log中。下面是一个按严重程度的降序排列的Log Level:

  • SEVERE (highest)

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

除此之外,您还可以使用OFF或ALL这两个level来关闭log或打开所有log。

下面这行代码是将logger设置为记录INFO级别:

1.4.Handler

每个logger可以设置多个Handler。

Handler的作用是接收logger的信息,并将其以合适的格式发送到合适的地方。

一个Handler可以用setLevel(Level.OFF)来关闭,用setLevel(...)开启。

JDK提供了几个标准的handler,例如:

  • ConsoleHandler: 将log信息写到Console

  • FileHandler: 将log信息写到文件中

超过INFO(包含INFO)的信息将自动被写入到Console中。

1.5.Formatter

每个Handler的输出都可以使用一个formatter来配置

已有的formatter:

  • SimpleFormatter 将所有的log信息以文本格式编排

  • XMLFormatter 生成XML格式的log信息

您还可以自定义Formatter,下面的这个示例Formatter可以将log信息用html的格式包装:

1.6.Log Manager

log manager的职责是创建和管理logger,并负责维护log配置。

使用LogManager.setLevel(String name, Level level)方法,我们可以为一个包或一组包设置logging level。例如,我们可以将所有logger的logging level设为Level.FINE:

1.7.Best Practices

使用被logged的那个类的名称为logger命名是一种很好的方法,这种方法可以使程序员更好地查看日志和管理logger,同时,这也是Logging API推荐的一种方式。

2. 示例

您可以在项目“ de.vogella.logger”中找到这个例子:
创建你自己的formatter:

初始化logger

使用logger



你可能感兴趣的:(java log)