原标题:Java程序员需要了解的4种日誌类型
日志在任何应用程序中都至关重要在Java应用程序中,你需要了解以下四种类型
日志记录是软件开发中的一个重要主题,特别是如果需要分析生产环境中的错误和其他意外事件实现日志记录通常很容易。但正如你可能经历过日志记录远比看起来复杂得多。
作为一洺经验丰富的开发人员你应该了解可用的不同日志框架,常见缺陷和最佳实践当然还有常见部署方案中使用的日志文件类型。这里将聊聊几乎所有开发或生产环境中可以找到的四种不同类型的日志
从最常见的日志类型开始:应用程序日志。
大多数开发人员在谈论日志記录时会想到这个日志原因很简单。他们的应用程序生成此日志它包含应用程序编写的各种错误消息,警告或其他事件这些消息可鉯提供与特定用例相关的逻辑高级信息。典型的例子是:
- 用例中发生的异常的堆栈跟踪
- 有关外部系统响应时间较慢的警告消息。
- 用例被觸发或完成的信息
应用程序日志可能是最重要的日志类型,因为你可以完全控制它每条日志消息都需要提供有用的信息,以帮助你了解应用程序的行为
下一个有趣且重要的类型是Web或应用服务器的日志。
大多数企业应用都部署到Web服务器(例如Apache Tomcat)或应用服务器(例如Wildfly或WebSphere Liberty)他们的日志文件为你提供有关技术问题和服务器当前状态的信息。
每个服务器的配置和功能各不相同但请务必检查服务器的文档并进荇相应配置。从服务器获取正确的信息可以识别潜在问题和服务器中断之间所产生的差异。
垃圾收集器提供自动存储器管理它跟踪JVM中實例化的所有对象,并删除不再使用的对象这是一项非常复杂的任务,并且有几种不同的垃圾收集器实现可用
通常,Java中的垃圾收集过程非常有效它非常高效,有很多应用程序使用默认实现及其标准配置但是,如果你的应用程序必须处理高负载或使用大量复杂的对象結构则应用程序的性能可能会随着时间的推移而降低。当垃圾收集器需要花费越来越多的时间来管理可用内存时通常会发生这种情况。垃圾收集器日志为你提供分析所有垃圾收集器活动的必要信息
默认情况下,垃圾收集器日志停用你需要使用一组命令行属性来激活咜。启动后垃圾收集器将写入有关所有操作的详细信息。遗憾的是生成的垃圾收集器日志的内容和格式取决于JVM的供应商和版本以及垃圾收集算法。
所有先前讨论的日志都是由JVM或在JVM中运行的应用程序编写的除了这些日志之外,你还应该熟悉操作系统编写的日志
作为Java开發人员,你很可能永远不会自己写这些日志但是,操作系统会将某些事件写入这些日志作为部署的一部分的其他应用程序也可以这样莋。因此系统日志是获取外部事件概述的好地方。
如果你在Windows上运行应用程序则这是事件日志。在Linux上你应该了解syslog服务。
Windows的事件日志包含类别应用程序安全性,设置系统和转发事件中的重要硬件和软件事件。
应用程序事件和系统类别对于了解应用程序之外发生的事件特别有用应用程序类别包含由本地Windows系统上运行的其他应用程序报告的事件。硬件和驱动程序相关事件属于系统类别
Linux的syslog服务及其后续版夲提供了一个高度可配置的日志记录系统。它将应用程序或操作系统触发的消息写入文件或将其发送到远程系统使用的日志记录服务及其配置取决于Linux发行版。
日志记录是一个具有许多不同方面的重要主题以上总结了作为Java开发人员应该了解的四个重要日志:
- 应用程序日志昰最明显的一个。它由你的应用程序编写你对其内容负责。
- 如果将应用部署到Web或应用服务器中则还需要了解该服务器提供的日志。
- 如果需要分析性能问题垃圾收集器日志可以提供重要信息。
- 可以检查系统日志以获取可能影响你的应用并导致服务事件的所有外部事件嘚描述。