Java 日志记录
Java™ 日志记录是 java.util.logging 包提供的记录工具箱。Java 日志记录为应用程序提供标准日志记录 API。
消息记录(消息)和诊断跟踪(跟踪)概念上非常相似,但它们却有重大的差异。为了正确使用这些工具,应用程序开发者理解这些差异是很重要的。提供以下消息和跟踪的可操作定义。
- 消息
- 消息条目是打算由最终用户、系统管理员和支持人员查看的信息记录。消息的文本必须清楚、简明且可由最终用户进行说明。消息通常会被本地化和以最终用户的本地语言显示。尽管消息的目标位置和生存期可能是可配置的,在正常系统操作中启用某些级别的消息记录。考虑到性能和消息库的大小,因此请谨慎使用消息记录。
- 跟踪
- 跟踪条目是打算由服务工程师或开发者使用的信息记录。同样地,跟踪记录可能比消息条目要复杂、详细和琐碎得多。本地化支持通常不用于跟踪条目。跟踪条目可能是相当难以理解的,仅有适当的开发者或服务人员能够理解它们。假设在正常运行时操作期间未写跟踪条目,但是可以根据需要启用它们以收集诊断信息。
应用程序服务器在服务器启动时重定向系统流。因为系统流不能由应用程序获取,所以没有方法允许应用程序输出记录到控制台。如果要使用控制台监视没有使用控制台处理程序的应用程序,那么可以监视 SystemOut.log 文件,或者监视由另一个文件处理程序创建的文件。
注: 应用程序服务器在内部使用 Java 日志记录,因此,应用程序将系统流与此记录
API 配合使用时存在某些限制。在服务器启动期间,为了在日志文件中包含系统流的输出,标准输出和错误流被写入到记录基础结构中的特殊流替换。因此,应用程序不能使用 java.util.logging.ConsoleHandler 或者任何向 SystemErr.log 或 System.out 流执行写入操作并连接至根记录器的处理程序。如果用户确实将处理程序连接至根记录器,那么在记录基础结构内创建了一个无限循环,导致堆栈溢出和服务器崩溃。
如果必须使用写到系统流的处理程序,那么将它连接至非根记录器,因此它不会发布日志记录到父处理程序。写到系统流的数据然后格式化并写到相应的系统流日志文件。要监视什么写到了系统流,可以监视已配置的日志文件(缺省为 SystemOut.log 和 SystemErr.log)。
注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.log、SystemErr.log、trace.log 和 activity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件
bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用
HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。
![[z/OS]](../images/ngzos.gif)