Java日誌:您需要了解的4種日誌型別

Tybyq發表於2018-11-21

日誌記錄是軟體開發中的一個重要主題,特別是如果您需要分析生產環境中的錯誤和其他意外事件。實現日誌記錄通常很容易。但正如您可能經歷過的那樣,日誌記錄遠比看起來複雜得多。這就是為什麼你可以在部落格上找到很多關於它的文章。

作為一名經驗豐富的開發人員,您應該瞭解可用的不同日誌框架,常見缺陷和最佳實踐,當然還有常見部署方案中使用的日誌檔案型別。在本文中,我將重點關注後者。我將告訴您幾乎所有開發或生產環境中可以找到的四種不同型別的日誌。

應用程式日誌

讓我們從最常見的日誌型別開始:應用程式日誌。

大多數開發人員在談論日誌記錄時會想到這個日誌。原因很簡單。他們的應用程式生成此日誌 它包含應用程式編寫的各種錯誤訊息,警告或其他事件。這些訊息可以提供與特定用例相關的邏輯高階資訊。典型的例子是:

  • 用例中發生的異常的堆疊跟蹤。

  • 有關外部系統響應時間較慢的警告訊息。

  • 用例被觸發或完成的資訊。

應用程式日誌可能是本文中提到的最重要的日誌型別,因為您可以完全控制它。這意味著您負責編寫訊息。

每條日誌訊息都需要提供有用的資訊,以幫助您瞭解應用程式的行為。如果您想了解有關應用程式日誌的更多資訊,您應該檢視Eric的文章,其中描述了一組用於應用程式日誌記錄的最佳實踐。

Web和應用程式伺服器日誌

下一個有趣且重要的型別是您的Web或應用程式伺服器的日誌。

大多數企業應用程式都部署到Web伺服器(例如  Apache Tomcat)或應用程式伺服器(例如  Wildfly或WebSphere Liberty)。他們的日誌檔案為您提供有關技術問題和伺服器當前狀態的資訊。

每個伺服器的配置和功能各不相同,我在本文中不會詳細解釋它們。但請務必檢查伺服器的文件並進行相應配置。從伺服器獲取正確的資訊可以在識別潛在問題和伺服器中斷之間產生差異。

垃圾收集器日誌

所述垃圾收集器提供自動儲存器管理。它跟蹤JVM中例項化的所有物件,並刪除不再使用的物件。這是一項非常複雜的任務,並且有幾種不同的垃圾收集器實現可用。

通常,Java中的垃圾收集過程非常有效。它非常高效,有很多應用程式使用預設實現及其標準配置。但是,如果您的應用程式必須處理高負載或使用大量複雜的物件結構,則應用程式的效能可能會隨著時間的推移而降低。當垃圾收集器需要花費越來越多的時間來管理可用記憶體時,通常會發生這種情況。垃圾收集器日誌為您提供分析所有垃圾收集器活動的必要資訊。

預設情況下,垃圾收集器日誌已停用。您需要使用一組命令列屬性來啟用它。

如果您使用的是JDK 8或更早版本,則可以使用以下屬性執行此操作:

- XX:+ PrintGCDetails  - Xloggc:


從JDK 9開始,您需要使用以下屬性:

class = “prettyprint” - Xlog:gc *:file = < gc - log - file - path >


使用這些命令列屬性啟動應用程式後,垃圾收集器將寫入有關所有操作的詳細資訊。遺憾的是,生成的垃圾收集器日誌的內容和格式取決於JVM的供應商和版本以及垃圾收集演算法。

系統日誌

所有先前討論的日誌都是由JVM或在JVM中執行的應用程式編寫的。除了這些日誌之外,您還應該熟悉作業系統編寫的日誌。

作為Java開發人員,您很可能永遠不會自己寫這些日誌。但是,您的作業系統會將某些事件寫入這些日誌。作為部署的一部分的其他應用程式也可以這樣做。因此,系統日誌是獲取外部事件概述的好地方。

如果您在Windows上執行應用程式,則這是事件日誌。在Linux上,您應該瞭解syslog服務及其後繼者。

Windows事件日誌

Windows的事件日誌包含類別應用程式,安全性,設定,系統和轉發事件中的重要硬體和軟體事件。

應用程式事件和系統類別對於瞭解應用程式之外發生的事件特別有用。應用程式類別包含由本地Windows系統上執行的其他應用程式報告的事件。硬體和驅動程式相關事件屬於系統類別。

您可以在本文中瞭解有關Windows事件日誌的更多資訊。

Linux系統日誌記錄

Linux的syslog服務及其後續版本提供了一個高度可配置的日誌記錄系統。它將應用程式或作業系統觸發的訊息寫入檔案或將其傳送到遠端系統。

使用的日誌記錄服務及其配置取決於您的Linux發行版。請檢視文件以瞭解有關特定作業系統的更多資訊。

Ian Shields寫了一篇關於Linux系統日誌記錄的精彩介紹。如果您正在尋找一般性介紹,我建議您閱讀他的Learn Linux,101:系統日誌指南。

結論

記錄是一個具有許多不同方面的重要主題。在本文中,我總結了作為Java開發人員應該瞭解的四個重要日誌:

  • 應用程式日誌是最明顯的一個。它由您的應用程式編寫,您對其內容負責。

  • 如果將應用程式部署到Web或應用程式伺服器中,則還需要了解該伺服器提供的日誌。

  • 如果需要分析效能問題,垃圾收集器日誌可以提供重要資訊。

  • 您可以檢查系統日誌,以獲取可能影響您的應用程式並導致服務事件的所有外部事件的概述。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31557424/viewspace-2221011/,如需轉載,請註明出處,否則將追究法律責任。

相關文章