更新時間:2022-06-02 09:58:39 來源:動力節點 瀏覽3633次
在本教程中,動力節點小編將借助示例了解 Java Logging 及其各種組件。
Java 允許我們通過日志記錄過程創建和捕獲日志消息和文件。
在 Java 中,日志記錄需要框架和 API。Java 在包中有一個內置的日志框架java.util.logging。
我們還可以使用 Log4j、Logback 等第三方框架進行日志記錄。
下圖展示了 Java Logging API ( java.util.logging) 的核心組件和控制流程。
1. 記錄器
該類Logger提供了日志記錄方法。我們可以從類中實例化對象Logger并調用它的方法來記錄日志。
讓我們舉個例子。
Logger logger = Logger.getLogger("newLoggerName");
類的getLogger()方法Logger用于查找或創建新的Logger. 字符串參數定義記錄器的名稱。
在這里,這將創建一個新對象或返回同名Logger的現有對象。LoggerLogger在當前類之后使用定義 a 是一種慣例class.getName()。
Logger logger = Logger.getLogger(MyClass.class.getName());
每個日志級別都有一個整數值來確定它們的嚴重性,除了兩個特殊日志級別OFF和ALL.
記錄消息
默認情況下,始終記錄前三個日志級別。要設置不同的級別,我們可以使用以下代碼:
logger.setLevel(Level.LogLevel);
// example
logger.setLevel(Level.FINE);
在此示例中,僅將級別FINE和高于它的級別設置為記錄。所有其他日志消息都將被刪除。
現在要記錄一條消息,我們使用該log()方法。
logger.log(Level.LogLevel, "log message");
// example
logger.log(Level.INFO, "This is INFO log level message");
有一些用于在所需級別進行日志記錄的速記方法。
logger.info( "This is INFO log level message");
logger.warning( "This is WARNING log level message");
所有通過設置日志級別的日志請求然后轉發到LogRecord。
2.過濾器
過濾器(如果存在)確定是否應轉發LogRecord 。顧名思義,它根據特定標準過濾日志消息。
如果LogRecord通過了指定的標準,它只會從記錄器傳遞到日志處理程序,并從日志處理程序傳遞到外部系統。
// set a filter
logger.setFilter(filter);
// get a filter
Filter filter = logger.getFilter();
3.處理程序(Appenders)
日志處理程序或附加程序接收LogRecord并將其導出到各種目標。
處理程序可以將LogRecord傳遞給過濾器,以再次確定它是否可以轉發到外部系統。
要添加新的處理程序,我們使用以下代碼:
logger.addHandler(handler);
// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
要刪除處理程序,我們使用以下代碼:
logger.removeHandler(handler);
// example
Handler handler = new ConsoleHandler();
logger.addHandler(handler);
logger.removeHandler(handler);
一個記錄器可以有多個處理程序。要獲取所有處理程序,我們使用以下代碼:
Handler[] handlers = logger.getHandlers();
4.格式化程序
處理程序還可以使用Formatter將LogRecord對象格式化為字符串,然后再將其導出到外部系統。
我們可以使用以下代碼來格式化處理程序:
// formats to string form
handler.setFormatter(new SimpleFormatter());
// formats to XML form
handler.setFormatter(new XMLFormatter());
LogManager對象跟蹤全局日志記錄信息。它讀取并維護日志記錄配置和記錄器實例。
日志管理器是一個單例,這意味著它只有一個實例被實例化。
要獲取日志管理器實例,我們使用以下代碼:
LogManager manager = new LogManager();
以下是使用 Java 登錄的一些優點。
有助于監控程序的流程
有助于捕獲可能發生的任何錯誤
為問題診斷和調試提供支持
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習