更新时间:2022-06-02 09:58:39 来源:极悦 浏览3322次
在本教程中,极悦小编将借助示例了解 Java Logging 及其各种组件。
Java 允许我们通过日志记录过程创建和捕获日志消息和文件。
在 Java 中,日志记录需要框架和 API。Java 在包中有一个内置的日志框架java.util.logging。
我们还可以使用 Log4j、Logback 等第三方框架进行日志记录。
下图展示了 Java Logging API ( java.util.logging) 的核心组件和控制流程。
1. 记录器
该类Logger提供了日志记录方法。我们可以从类中实例化对象Logger并调用它的方法来记录日志。
让我们举个例子。
Logger logger = Logger.getLogger("newLoggerName");
类的getLogger()方法Logger用于查找或创建新的Logger. 字符串参数定义记录器的名称。
在这里,这将创建一个新对象或返回同名Logger的现有对象。LoggerLogger在当前类之后使用定义 a 是一种惯例class.getName()。
Logger logger = Logger.getLogger(MyClass.class.getName());
每个日志级别都有一个整数值来确定它们的严重性,除了两个特殊日志级别OFF和ALL.
记录消息
默认情况下,始终记录前三个日志级别。要设置不同的级别,我们可以使用以下代码:
logger.setLevel(Level.LogLevel);
// example
logger.setLevel(Level.FINE);
在此示例中,仅将级别FINE和高于它的级别设置为记录。所有其他日志消息都将被删除。
现在要记录一条消息,我们使用该log()方法。
logger.log(Level.LogLevel, "log message");
// example
logger.log(Level.INFO, "This is INFO log level message");
有一些用于在所需级别进行日志记录的速记方法。
logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");
所有通过设置日志级别的日志请求然后转发到LogRecord。
2.过滤器
过滤器(如果存在)确定是否应转发LogRecord 。顾名思义,它根据特定标准过滤日志消息。
如果LogRecord通过了指定的标准,它只会从记录器传递到日志处理程序,并从日志处理程序传递到外部系统。
// set a filter
logger.setFilter(filter);
// get a filter
Filter filter = logger.getFilter();
3.处理程序(Appenders)
日志处理程序或附加程序接收LogRecord并将其导出到各种目标。
处理程序可以将LogRecord传递给过滤器,以再次确定它是否可以转发到外部系统。
要添加新的处理程序,我们使用以下代码:
logger.addHandler(handler);
// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
要删除处理程序,我们使用以下代码:
logger.removeHandler(handler);
// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);
一个记录器可以有多个处理程序。要获取所有处理程序,我们使用以下代码:
Handler[] handlers = logger.getHandlers();
4.格式化程序
处理程序还可以使用Formatter将LogRecord对象格式化为字符串,然后再将其导出到外部系统。
我们可以使用以下代码来格式化处理程序:
// formats to string form
handler.setFormatter(new SimpleFormatter());
// formats to XML form
handler.setFormatter(new XMLFormatter());
LogManager对象跟踪全局日志记录信息。它读取并维护日志记录配置和记录器实例。
日志管理器是一个单例,这意味着它只有一个实例被实例化。
要获取日志管理器实例,我们使用以下代码:
LogManager manager = new LogManager();
以下是使用 Java 登录的一些优点。
有助于监控程序的流程
有助于捕获可能发生的任何错误
为问题诊断和调试提供支持
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习