Jakarta Commons Logging

Jakarta Commons Logging 为多个日志记录系统提供了一个简单的日志记录接口和多个瘦包装器。 日志记录接口使应用程序日志记录简单化并且与应用程序使用的日志记录系统无关。 您无须更改应用程序日志记录代码就可以更改已部署应用程序的日志记录实现。 但是,由于日志记录记录这种简单性,将使得应用程序无法利用日志记录系统的所有功能。

有关 Jakarta Commons 登录的信息WebSphere® Application Server,请参阅以下部分:

对 Jakarta Commons Logging 的支持

该产品支持雅加达公共伐木通过提供一个记录器,一个薄包装WebSphere Application Server伐木设施。 记录器可以处理Java 日志( JSR-47 ) 和通用基础事件日志对象。 日志记录对象是一个用来保存日志记录条目信息的对象。

本产品对 Jakarta Commons Logging 的支持不会更改由 Jakarta Commons Logging 定义的接口。

Jakarta Commons Logging 支持的优点

WebSphere Application Server对 Jakarta Commons Logging 的支持有以下好处:

  • WebSphere Application Server已预先配置为使用 Jakarta Commons Logging。

    Jakarta Commons Logging 的所有功能都适用于任何应用程序或WebSphere Application Server成分。 日志记录调用默认路由到底层WebSphere Application Server伐木设施。

  • 使用WebSphere Application Server伐木设施。

    应用程序和组件可以将 Java Logging 和 Common Base Event 日志对象传递给WebSphere Application Server记录器无需转换为字符串,为应用程序提供增强的日志记录功能。 此外,Jakarta Commons Logging Logger 级别集成到WebSphere Application Server行政设施。

使用 Jakarta Commons Logging 的过程概述

使用 Jakarta Commons Logging 进行日志记录包括以下步骤。 配置WebSphere Application Server记录器提供有关配置应用程序以使用WebSphere Application Server記錄器。

  1. 获取记录器工厂的实例。

    要获取记录器工厂,可使用 Jakarta Commons Logging 代码。 可以配置代码以满足您的需要。 在WebSphere Application Server,Jakarta Commons Logging 默认配置为实例化 Jakarta Commons Logging 默认记录器工厂。 应用程序或WebSphere Application Server如果组件使用不同的记录器工厂实现,则可以提供自己的配置。 应用程序可以使用多个工厂。

  2. 获取记录器的实例。

    要获取记录器,可使用由记录器工厂实现的代码。 代码的配置是特定于实现的。

    WebSphere Application Serverlogger 实现日志记录接口中定义的方法。 日志记录方法至少要采用一个自变量,自变量可以是任何 Java 对象。 这WebSphere Application Server伐木工WsJDK14Logger记录器描述用于获取记录器工厂和记录器的类,处理传递到以下日志记录方法中的以下对象:

    CommonBaseEvent
    合并到 CommonBaseEventLogRecord 中
    CommonBaseEventLogRecord
    按原样传递
    LogRecord
    按原样传递
    其他对象
    转换为字符串

    应用程序或WebSphere Application Server如果组件使用不特定于某个记录器的实现,则可以提供自己的配置WebSphere Application Server。 应用程序必须知道正在使用哪个工厂以便配置。

  3. 启动应用程序。 Jakarta Commons Logging 将应用程序的日志记录输出传递给指定记录器。

用来获取记录器工厂和记录器的类

表 1. Jakarta Commons Logging 类描述 将类用于记录器工厂实例和记录器
类名 描述
LogFactory LogFactory 是一个用来实现初始化逻辑的 Jakarta Commons Logging 类。 LogFactory 是一个抽象类,每个记录器工厂实现都必须扩展。 它提供了静态方法来获取下列各项:
  • 工厂类的实例
  • 记录器的实例,使用工厂类的实例
LogFactory 提供了用于获取记录器实例的一些方法。但是,这些方法委托记录器工厂类实例来实例化和配置记录器。

一旦将记录器工厂实例化,就会对每个上下文类装入器高速缓存这些记录器工厂。 可以释放高速缓存中的实例。 此功能是为平台容器实现而不是为应用程序实现的。

LogFactoryImpl LogFactoryImpl 是一个 Jakarta Commons Logging 具体类,它使用 LogFactory 中的方法来实现缺省记录器工厂。 要使用 Java 日志记录,必须始终至少有一个记录器工厂类实例,即使应用程序尚未显式获得一个这种实例。 如果配置中未对记录器工厂类命名,那么使用 LogFactoryImpl 作为缺省值。
日志 Log 是用于记录器的一个 Jakarta Commons Logging 接口。 Commons Logging 记录器必须实现 Log 接口。 因为 Jakarta Commons Logging 的目标是包含任何日志记录系统,所以 Log 接口将定义少量的一般日志记录方法。 在WebSphere Application Server, WsJDK14Logger实现 Log 接口。

记录器实例化和配置是特定于每个记录器工厂的。 在登录WebSphere Application Server使用 Jakarta Commons Logging 中提供的默认记录器工厂,该工厂根据每个上下文类加载器将实例化的记录器保存在缓存中。

WsJDK14Logger WsJDK14LoggerWebSphere Application Server通过实现 Log 接口提供 Jakarta Commons Logging 记录器的类。 WsJDK14Logger 记录器与“Java 日志记录”记录器的不同之处在于:WsJDK14Logger 记录器使“Java 日志记录”或“公共基本事件”对象无须转换为字符串对象就可以进行传递。 这样就可以防止因转换为字符串而可能导致的任何信息丢失,同时允许日志记录输出增加更多描述信息并且更准确。 相反,在将传递到日志记录调用中的对象传递给底层的“Java 日志记录”之前,Jakarta Commons Logging 中提供的“Java 日志记录”记录器会将这些对象转换为字符串对象。

记录器级别配置和映射

因为 Jakarta Commons Logging 记录器是用于特定日志记录系统的包装器,所以这些记录器没有它们自己的级别,而是使用底层日志记录系统中的记录器的级别。 尽管底层系统可以提供一些方法来更改级别,但是没有方法用于更改在 Log 接口上定义的级别,而所有 Jakarta Commons Logging 记录器都必须实现。 WsJDK14Logger 使用它的底层“Java 日志记录”记录器的级别。

下表显示了 Jakarta Commons Logging 级别的映射WsJDK14Logger达到WebSphere Application ServerJava 日志的实现。 第一列显示了“Java 日志记录”中定义的级别以及 Jakarta Commons Logging JDK14Logger 中与“Java 日志记录”级别之间的级别映射。

表 2. 映射WsJDK14Logger级别转换为 Java 日志级别 比较日志记录级别。
WsJDK14Logger Java 登录WebSphere Application Server Java 日志记录 JDK14Logger
致命 致命    
错误 严重 严重 致命错误
警告 警告 警告 警告
  审计    
参考信息 参考信息 参考信息 参考信息
  配置 配置  
  所需详情    
调试 细致 细致 调试
  更细致 更细致  
跟踪 最细致 最细致 跟踪

WsJDK14Logger 级别与底层的“Java 日志记录”记录器级别同步。 WebSphere Application Server管理部门控制WsJDK14Logger等级。