Java 日志记录

Java™ 日志记录是java.util.logging包裹。 Java 日志为您的应用程序提供了标准日志 API。

消息记录(消息)和诊断跟踪(跟踪)概念上非常相似,但它们却有重大的差异。 为了正确使用这些工具,应用程序开发者理解这些差异是很重要的。 提供以下消息和跟踪的可操作定义。

消息
消息条目是打算由最终用户、系统管理员和支持人员查看的信息记录。 消息的文本必须清楚、简明且可由最终用户进行说明。 消息通常会被本地化和以最终用户的本地语言显示。 尽管消息的目标位置和生存期可能是可配置的,在正常系统操作中启用某些级别的消息记录。 考虑到性能和消息库的大小,因此请谨慎使用消息记录。
跟踪
跟踪条目是打算由服务工程师或开发者使用的信息记录。 同样地,跟踪记录可能比消息条目要复杂、详细和琐碎得多。 本地化支持通常不用于跟踪条目。 跟踪条目可能是相当难以理解的,仅有适当的开发者或服务人员能够理解它们。 假设在正常运行时操作期间未写跟踪条目,但是可以根据需要启用它们以收集诊断信息。

应用程序服务器在服务器启动时重定向系统流。 因为系统流不能由应用程序获取,所以没有方法允许应用程序输出记录到控制台。 如果要使用控制台监视没有使用控制台处理程序的应用程序,那么可以监视 SystemOut.log 文件,或者监视由另一个文件处理程序创建的文件。

笔记:应用程序服务器内部使用 Java 日志记录,因此应用程序使用带有此日志记录 API 的系统流时会受到某些限制。 在服务器启动期间,为了在日志文件中包含系统流的输出,标准输出和错误流被写入到记录基础结构中的特殊流替换。 由于此原因,应用程序不能使用 java.util.logging.ConsoleHandler 或者任何写到 SystemErr.logSystem.out 流、连接至根记录器的处理程序。 如果用户确实将处理程序连接至根记录器,那么在记录基础结构内创建了一个无限循环,导致堆栈溢出和服务器崩溃。

如果必须使用写到系统流的处理程序,那么将它连接至非根记录器,因此它不会发布日志记录到父处理程序。 写到系统流的数据然后格式化并写到相应的系统流日志文件。 要监视什么写到了系统流,可以监视已配置的日志文件(缺省为 SystemOut.logSystemErr.log)。

笔记:本主题引用一个或多个应用程序服务器日志文件。 作为推荐的替代方案,您可以将服务器配置为使用高性能可扩展日志记录 (HPEL) 日志和跟踪基础结构,而不是使用SystemOut.logSystemErr.logtrace.log , 和activity.log分布式文件和IBM® i系 统。 您还可以将 HPEL 与本机z/OS®伐木设施。 如果您正在使用 HPEL,那么可以从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。 查看有关使用 HPEL 的信息了解有关使用 HPEL 的更多信息,以排除应用程序故障。
[z/OS]笔记:SystemOut.logSTDOUT流被重定向到SYSPRINTddname 下z/OS。 这SystemErr.logSTDERR流被重定向到SYSOUTddname 下z/OS。 默认情况下,WebSphere® Application Server for z/OS编目程序将这些 ddname 与打印 (SYSOUT=*) 数据集关联起来,导致消息日志进入WebSphere Application Server工作输出。 您可以使用“假脱机显示和搜索工具”(SDSF) 或等效的软件来查看作业输出。