Java從 JDK 1.4 開始將日志記錄 API 庫作為其框架的一部分。今天,這是來自 Java的內置支持。然而,這個庫是可定制和可擴展的,因為我們可以使用第三方庫提供的一個或多個替代日志解決方案。盡管這些第三方解決方案有不同的方法來創建日志數據,但它們最終共享從應用程序運行時記錄消息的相同目標。本文探討了日志記錄的基礎知識。想學習Java日志記錄的同學可以參加java培訓,在專業老師的帶領下,可以獲得快速提升。
Java日志記錄
日志通常意味著維護某種記錄。從編程的角度來看,它是在程序執行過程中將消息寫入日志文件的過程。持久化消息日志通常由程序員參考,以收集某些運行時統計信息,這些信息在分析時可以揭示不可預見的情況。事實上,使用日志記錄的原因可能有很多,這只是其中之一。根據Java API文檔,日志記錄有四種主要用途:
供最終用戶和系統管理員進行問題診斷。
現場服務工程師可以方便地從記錄的消息中診斷問題并快速修復。
開發組織可以跟蹤特定子系統的內部執行并對其進行分析。
開發人員可以通過從記錄的消息中快速了解潛在問題來調試正在開發的應用程序。
Java API日志記錄以一種廉價的方式設計,即使在生產應用程序中它也可以作為殘留物留下。這不會對程序執行的效率造成太大的開銷。API提供了動態更改日志消息生成的機制,以便在需要最高效率的操作期間將日志記錄的影響降至最低API由許多類和接口組成,可以通過擴展它們來定制它們。整個日志API打包在java.util.logging下。此包中的類和接口提供Java中的核心日志記錄工具。在Java培訓中,無論是理論知識項技能。
日志記錄級別
登錄Java程序的緊迫性可以分為幾個級別。通過升級和降級,我們可以增加或減少生產應用程序的登錄成本。這就是我們在需要記錄一個或多個事件時控制應用程序執行效率的方式。這是通過一個名為Level的類來實現的,該類定義了日志記錄的重要性。日志級別由靜態整數常量排序和指定,例如:
Level.ALL:記錄所有消息,無論其重要性
Level.OFF:關閉日志記錄
Level.SEVERE:表示嚴重故障; 必須記錄
Level.WARNING:表示警告信息
Level.INFO:運行時信息性消息
Level.CONFIG:靜態配置消息
Level.FINE:跟蹤消息
Level.FINER:詳細跟蹤消息
Level.FINEST:非常詳細的跟蹤消息
日志記錄組件
我們需要一個Logger實例來執行Java中的任何類型的日志記錄。該實例負責將數據記錄到LogRecord中。LogRecord實例用于在日志框架和各個日志處理程序之間傳遞日志請求。Java SE 提供了五種類型的內置處理程序:StreamHandler、ConsoleHandler、FileHandler、SocketHandler 和 MemoryHandler。但是,可以創建一個新的處理程序或將其中一個擴展為自定義。通過java培訓學習,有更加系統全面的課程和明確清晰的學習路線,學習起來既輕松,又高效。
處理程序決定如何處理日志記錄,例如,它可以保存在本地存儲庫中,也可以通過網絡傳遞給服務器。Java SE 還包括兩個標準格式化程序:SimpleFormatter和XMLFormatter。這些格式化程序分別用于將LogRecord格式化為人類可讀格式和標準XML格式。
有一個LogManager類可以跟蹤全局日志記錄信息,例如命名Loggers的分層命名空間和配置文件中的一組日志記錄控制屬性。它是Java日志記錄的核心,幾乎可以控制要記錄的內容、記錄的位置,包括其他初始化細節等等。
Java中的其他日志框架
有時,使用第三方日志框架很方便,并且有不少流行的可供選擇。例如,SLF4J 提供的日志API使用簡單的外觀模式,這是一個抽象層,使應用程序能夠與其日志框架分離。Log4j在語法上類似于內置的Java日志記錄。它具有將所有日志消息輸出到控制臺的默認配置。Logback是Log4j的繼承者,是其前身的擴展。tinyLog 是一個輕量級的日志框架,可以與Java和Android一起使用。
結論
日志記錄過程旨在簡單有效地交付它應該做的事情。可以快速開始使用Java中的 Logging API。該設計具有可擴展性,可以根據開發人員的最終需求進行定制。想學習java更多技能,建議參加java培訓,課程實時更新,緊跟市場和企業,讓你學到最新的java技能,提高市場競爭力。