Liberty:二进制日志记录

二进制日志记录是 WebSphere Application Server 传统版中基于高性能可扩展日志记录 (HPEL) 技术的高性能日志和跟踪工具。

概述

注: 二进制日志记录工具必须启用,才能加以使用。

二进制日志记录提供了一种很方便的机制来存储和访问应用程序服务器或应用程序生成的日志、跟踪、System.err 和 System.out 信息。二进制日志记录可以替代缺省日志和跟踪工具,该工具提供 JVM 日志和诊断跟踪文件(通常称为 messages.logtrace.log)。

日志和跟踪存储

二进制日志记录提供日志数据存储库和跟踪数据存储库。请参阅下图以了解应用程序和应用程序服务器如何存储日志和跟踪信息。

用于 HPEL 日志记录和基本日志记录的日志和跟踪存储器。

日志数据存储库

日志数据存储库是用于存储日志记录的存储工具。通常由管理员复查日志数据。这包括应用程序或服务器写入 System.out、System.err、OSGi 记录服务(LOG_INFO 级别或更高级别,包括 LOG_INFO、LOG_WARNING 和 LOG_ERROR)或 java.util.logging(“详细”级别或更高级别,包括“详细”、“配置”、“参考”、“审计”、“警告”、“严重”、“致命”和任何定制级别)的任何信息。

跟踪数据存储库

跟踪数据存储库是用于存储跟踪记录的存储工具。跟踪数据通常供应用程序员或者 WebSphere® Application Server 支持团队使用。这包括将应用程序或服务器写入 OSGi 记录服务(LOG_DEBUG 级别)或 java.util.logging(“详细”以下的级别,包括精细、较精细、最精细和任何定制级别)的任何信息。

日志和跟踪性能

已对二进制日志记录进行设计和测试,以使其性能明显优于缺省日志和跟踪工具。通过使用二进制日志记录而不是缺省日志和跟踪框架,可极大地改进在启用跟踪的情况下运行应用程序服务器对性能产生的影响。另外,使用二进制日志记录还会导致频繁写入日志的应用程序更快地运行。

每个日志和跟踪事件都只存储在一个位置

日志事件 System.out 和 System.err 存储在日志数据存储库中。跟踪事件存储在跟踪数据存储库中。仅将每种类型的事件存储在一个位置可确保不会因重复进行数据存储而影响性能。

注: 如果日志记录性能很重要,那么必须禁用控制台日志。写入控制台日志中的任何内容都已经存储在日志数据存储库中。

此图显示连接至日志数据库和跟踪数据存储库的应用程序服务器。

除非数据需要格式化,否则不会将数据格式化

格式化数据以便用户阅读会占用处理器时间。日志和跟踪数据会更快速地以专用二进制表示来存储,而不是在运行时格式化日志事件和跟踪事件数据。这将提高日志和跟踪工具的性能。通过延迟日志和跟踪格式化直到 binaryLog 命令处于运行状态,从未查看的日志或跟踪部分就决不会格式化。

将日志和跟踪数据写入磁盘之前对其进行缓存

将大块数据写入磁盘比将相同数量的数据写入小块的效率更高。二进制日志记录工具使您能够在将日志和跟踪数据写入磁盘之前对数据进行缓存。缺省情况下,在将日志和跟踪数据写入磁盘之前,会将数据存储在 8 KB 缓冲区中。如果缓冲区在 10 秒之内填满,那么会将缓冲区写入磁盘。如果缓冲区未在 10 秒之内装满,那么会自动地将缓冲区写入磁盘以确保日志具有最新信息。

日志和跟踪的管理

已经将二进制日志记录设计为容易配置和了解。例如,管理员很容易配置供日志和跟踪专用的磁盘空间量、日志和跟踪记录的保留时间以及由服务器来管理日志和跟踪内容。又比如,可以使用一个容易使用的命令 (binaryLog) 来访问所有日志、跟踪、System.out 和 System.err 内容,从而避免对于要在哪个文件中访问特定内容可能发生任何混淆。

从日志数据存储库和跟踪数据存储库中读取

日志数据存储库和跟踪数据存储库以 WebSphere Application Server 专用格式进行存储,并且无法使用记事本或 VI 之类的文本文件编辑器来阅读。可以使用 binaryLog 命令将日志数据存储库和跟踪数据存储库复制到纯文本格式。

此图说明了日志查看器将数据从日志数据库和跟踪数据存储库拉取到文本日志中。
binaryLog 命令

binaryLog 是为用户提供的一个容易使用的命令行工具,用来处理日志数据存储库和跟踪数据存储库。binaryLog 提供过滤和格式化选项,使在日志数据存储库和跟踪数据存储库中查找重要内容更容易。例如,用户可以过滤任何错误或警告,然后过滤在 10 秒钟之内发生的所有日志和跟踪条目,以找出同一线程上的关键错误消息。

使用日志和跟踪记录扩展内容进行过滤

二进制日志记录工具可让开发者使用日志记录上下文 API (com.ibm.websphere.logging.hpel.LogRecordContext) 将定制扩展添加到日志和跟踪记录。可以使用 binaryLog 命令行工具根据日志和跟踪记录扩展的内容来过滤记录。

开发资源

已经对二进制日志记录进行设计,以便比缺省日志记录工具更灵活高效地处理日志和跟踪内容。很容易对日志和跟踪内容进行过滤以仅显示感兴趣的记录。您可以使用命令行(请参阅 binaryLog 命令的描述),或者开发者可以使用 HPEL API 来创建功能强大的日志处理程序。

此图显示了连接至 com.ibm.websphere.logging.hpel API 的日志数据存储库和跟踪数据存储库。
读取日志数据和跟踪数据

已经提供了一个 API,以使开发者容易开发一些工具来使用二进制日志和跟踪存储库中的内容。例如,开发者可编写 Java™ 程序以搜索日志和跟踪内容来查找其消息标识与已知重要消息标识列表匹配的任何消息。此 API 位于 com.ibm.websphere.logging.hpel 包中。请参阅 API 文档以了解有关 HPEL 日志读取 API 的详细信息。

日志和跟踪记录可扩展性

开发者可以通过日志记录上下文 API (com.ibm.websphere.logging.hpel.LogRecordContext) 向日志和跟踪记录添加定制扩展。当二进制日志记录存储日志和跟踪记录时,它会将存在于日志记录上下文中的任何扩展包括在同一线程上。例如,开发者可以编写 Servlet 过滤器,以向日志记录上下文添加重要的 HTTP 请求参数。当该 Servlet 运行时,HPEL API 会向在同一线程上创建的任何日志和跟踪记录添加这些扩展。

与其他日志和跟踪记录字段一样,开发者可以使用 HPEL API 来访问记录扩展。这在编写工具以从日志和跟踪存储库中读取时很有用。在运行时,开发者还可以利用日志记录上下文 API 来访问定制日志处理程序、过滤器和格式化程序中的扩展。


用于指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_HPELOverview
文件名:cwlp_HPELOverview.html