創(chuàng)建配置文件
在JUL的基礎(chǔ)使用經(jīng)驗(yàn)中,我們通常會(huì)在具體的業(yè)務(wù)類中創(chuàng)建并配置Formatter、Handler、Logger對(duì)象。但是如果有很多業(yè)務(wù)類,這些操作就會(huì)變得重復(fù)而繁瑣。為了簡(jiǎn)化操作,我們可以將這些步驟提
在JUL的基礎(chǔ)使用經(jīng)驗(yàn)中,我們通常會(huì)在具體的業(yè)務(wù)類中創(chuàng)建并配置Formatter、Handler、Logger對(duì)象。但是如果有很多業(yè)務(wù)類,這些操作就會(huì)變得重復(fù)而繁瑣。為了簡(jiǎn)化操作,我們可以將這些步驟提取出來(lái),創(chuàng)建一個(gè)日志工廠類,并通過(guò)配置文件的方式構(gòu)建Logger對(duì)象。
首先,我們需要?jiǎng)?chuàng)建一個(gè)名為的配置文件(文件名可自行定義)。如果你是基于Maven創(chuàng)建的工程,則將配置文件放到resources目錄下。如果不是基于Maven創(chuàng)建的工程,則放到工程src文件夾根目錄下即可。
編輯配置文件
在配置文件中添加以下內(nèi)容:
```
# 設(shè)置所有使用的handler,逗號(hào)分隔
handlers ,
# 日志整體的輸出級(jí)別
.level INFO
# 以下是對(duì)所有handler進(jìn)行設(shè)置
# 設(shè)置handler本身的日記輸出級(jí)別
INFO
# 設(shè)置handler所使用的formatter
# 設(shè)置handler本身的日記輸出級(jí)別
SEVERE
# 設(shè)置handler所使用的formatter
java.util.logging.XMLFormatter
# 對(duì)于FileHandler而言,還需要設(shè)置目標(biāo)文件
D:/jul_study.log
```
創(chuàng)建日志記錄工廠類
我們需要?jiǎng)?chuàng)建一個(gè)自定義的日志記錄工廠類。該類通過(guò)讀取配置文件,并對(duì)Logger進(jìn)行初始化,同時(shí)提供一個(gè)靜態(tài)方法用于構(gòu)建Logger對(duì)象。
在創(chuàng)建Logger對(duì)象時(shí),默認(rèn)會(huì)先獲取系統(tǒng)屬性 ``。如果該屬性指定了具體的配置文件,則會(huì)加載并進(jìn)行初始化。因此,我們可以通過(guò)以下靜態(tài)代碼段來(lái)設(shè)置該屬性的值:
```java
static {
("", ().getResource("").getPath());
}
```
其中,`` 是第一步中創(chuàng)建的配置文件名稱。
創(chuàng)建Logger對(duì)象并進(jìn)行測(cè)試
通過(guò)使用配置文件,我們可以直接創(chuàng)建JUL Logger對(duì)象,無(wú)需手動(dòng)進(jìn)行配置。下面是創(chuàng)建Logger對(duì)象并進(jìn)行測(cè)試的代碼示例:
```java
import java.util.logging.Logger;
public class Main {
private static final Logger logger (());
public static void main(String[] args) {
("This is an info message");
logger.warning("This is a warning message");
("This is a severe message");
}
}
```
以上代碼中,我們直接使用方法獲取Logger對(duì)象,并通過(guò)調(diào)用不同級(jí)別的日志方法進(jìn)行測(cè)試。
通過(guò)以上幾個(gè)步驟,我們成功地使用配置文件構(gòu)建了Logger對(duì)象,避免了重復(fù)的操作,使得日志管理更加方便和靈活。