Jakarta Commons Logging
Jakarta Commons Logging 为多个日志记录系统提供了一个简单的日志记录接口和多个瘦包装器。 日志记录接口使应用程序日志记录简单化并且与应用程序使用的日志记录系统无关。 您无须更改应用程序日志记录代码就可以更改已部署应用程序的日志记录实现。 但是,由于日志记录记录这种简单性,将使得应用程序无法利用日志记录系统的所有功能。
有关 WebSphere® Application Server中的 Jakarta Commons Logging 的信息,请参阅以下部分:
- 对 Jakarta Commons Logging 的支持
- Jakarta Commons Logging 支持的优点
- 使用 Jakarta Commons Logging 的过程概述
- 用来获取记录器工厂和记录器的类
- 记录器级别配置和映射
对 Jakarta Commons Logging 的支持
该产品通过提供记录器 ( WebSphere Application Server 日志记录工具的瘦包装器) 来支持 Jakarta Commons Logging 。 记录器可以处理 Java 日志记录 (JSR-47) 和公共基本事件日志记录对象。 日志记录对象是一个用来保存日志记录条目信息的对象。
本产品对 Jakarta Commons Logging 的支持不会更改由 Jakarta Commons Logging 定义的接口。
Jakarta Commons Logging 支持的优点
对 Jakarta Commons Logging 的 WebSphere Application Server 支持具有以下优点:
- WebSphere Application Server 预先配置为使用 Jakarta Commons Logging。
针对任何应用程序或 WebSphere Application Server 组件提供 Jakarta Commons Logging 的所有功能。 缺省情况下,会将日志记录调用路由到底层 WebSphere Application Server 日志记录工具。
- 使用 WebSphere Application Server 日志记录工具的记录器。
应用程序和组件可以将 Java 日志记录对象和公共基本事件日志记录对象传递到 WebSphere Application Server 记录器,而无需转换为字符串,从而为应用程序提供增强的日志记录。 此外, Jakarta Commons Logging Logger 级别集成到 WebSphere Application Server 管理设施中。
使用 Jakarta Commons Logging 的过程概述
使用 Jakarta Commons Logging 进行日志记录包括以下步骤。 WebSphere Application Server 记录器的配置 提供有关将应用程序配置为使用 WebSphere Application Server 记录器的详细信息。
- 获取记录器工厂的实例。
要获取记录器工厂,可使用 Jakarta Commons Logging 代码。 可以配置代码以满足您的需要。 在 WebSphere Application Server中,缺省情况下配置 Jakarta Commons Logging 以实例化 Jakarta Commons Logging 缺省记录器工厂。 如果应用程序或 WebSphere Application Server 组件使用不同的记录器工厂实现,那么它们可以提供自己的配置。 应用程序可以使用多个工厂。
- 获取记录器的实例。
要获取记录器,可使用由记录器工厂实现的代码。 代码的配置是特定于实现的。
WebSphere Application Server 记录器实现日志记录接口中定义的方法。 日志记录方法至少要采用一个自变量,自变量可以是任何 Java 对象。 WebSphere Application Server 记录器 ( 用于获取记录器工厂和记录器的类中描述的 WsJDK14Logger 记录器) 处理传递到以下日志记录方法中的以下对象:
- CommonBaseEvent
- 合并到 CommonBaseEventLogRecord 中
- CommonBaseEventLogRecord
- 按原样传递
- LogRecord
- 按原样传递
- 其他对象
- 转换为字符串
如果应用程序或 WebSphere Application Server 组件使用并非特定于 WebSphere Application Server的记录器实现,那么它们可以提供自己的配置。 应用程序必须知道正在使用哪个工厂以便配置。
- 启动应用程序。 Jakarta Commons Logging 将应用程序的日志记录输出传递给指定记录器。
用来获取记录器工厂和记录器的类
| 类名 | 描述 |
|---|---|
| LogFactory | LogFactory 是一个用来实现初始化逻辑的 Jakarta Commons Logging 类。 LogFactory 是一个抽象类,每个记录器工厂实现都必须扩展。 它提供了静态方法来获取下列各项:
一旦将记录器工厂实例化,就会对每个上下文类装入器高速缓存这些记录器工厂。 可以释放高速缓存中的实例。 此功能是为平台容器实现而不是为应用程序实现的。 |
| LogFactoryImpl | LogFactoryImpl 是一个 Jakarta Commons Logging 具体类,它使用 LogFactory 中的方法来实现缺省记录器工厂。 要使用 Java 日志记录,必须始终至少有一个记录器工厂类实例,即使应用程序尚未显式获得一个这种实例。 如果配置中未对记录器工厂类命名,那么使用 LogFactoryImpl 作为缺省值。 |
| 日志 | Log 是用于记录器的一个 Jakarta Commons Logging 接口。 Commons Logging 记录器必须实现 Log 接口。 因为 Jakarta Commons Logging 的目标是包含任何日志记录系统,所以 Log 接口将定义少量的一般日志记录方法。 在 WebSphere Application Server中, WsJDK14Logger 实现日志接口。 记录器实例化和配置是特定于每个记录器工厂的。 WebSphere Application Server 中的日志记录使用 Jakarta Commons Logging 中提供的缺省记录器工厂,这将在每个上下文类装入器的基础上在高速缓存中保留实例化的记录器。 |
| WsJDK14Logger | WsJDK14Logger 是一个 WebSphere Application Server 类,它通过实现日志接口来提供 Jakarta Commons Logging 记录器。 WsJDK14Logger 记录器与“Java 日志记录”记录器的不同之处在于:WsJDK14Logger 记录器使“Java 日志记录”或“公共基本事件”对象无须转换为字符串对象就可以进行传递。 这样就可以防止因转换为字符串而可能导致的任何信息丢失,同时允许日志记录输出增加更多描述信息并且更准确。 相反,在将传递到日志记录调用中的对象传递给底层的“Java 日志记录”之前,Jakarta Commons Logging 中提供的“Java 日志记录”记录器会将这些对象转换为字符串对象。 |
记录器级别配置和映射
因为 Jakarta Commons Logging 记录器是用于特定日志记录系统的包装器,所以这些记录器没有它们自己的级别,而是使用底层日志记录系统中的记录器的级别。 尽管底层系统可以提供一些方法来更改级别,但是没有方法用于更改在 Log 接口上定义的级别,而所有 Jakarta Commons Logging 记录器都必须实现。 WsJDK14Logger 使用它的底层“Java 日志记录”记录器的级别。
下表显示了 WsJDK14Logger 中 Jakarta Commons Logging 级别到 Java 日志记录的 WebSphere Application Server 实现中的级别的映射。 第一列显示了“Java 日志记录”中定义的级别以及 Jakarta Commons Logging JDK14Logger 中与“Java 日志记录”级别之间的级别映射。
| WsJDK14Logger | WebSphere Application Server 中的 Java 日志记录 | Java 日志记录 | JDK14Logger |
|---|---|---|---|
| 致命 | 致命 | ||
| 错误 | 严重 | 严重 | 致命错误 |
| 警告 | 警告 | 警告 | 警告 |
| 审计 | |||
| 参考信息 | 参考信息 | 参考信息 | 参考信息 |
| 配置 | 配置 | ||
| 详细信息 | |||
| 调试 | 细致 | 细致 | 调试 |
| 更细致 | 更细致 | ||
| 跟踪 | 最细致 | 最细致 | 跟踪 |
WsJDK14Logger 级别与底层的“Java 日志记录”记录器级别同步。 WebSphere Application Server 管理控制 WsJDK14Logger 级别。