|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.logging.Logger
public class Logger
Logger 物件用來記錄特定系統或應用程序元件的日誌訊息。一般使用圓點分隔的層次名稱空間來命名 Logger。Logger 名稱可以是任意的字元串,但是它們一般應該基於被記錄元件的套件名或類別名,如 java.net 或 javax.swing。此外,可以創建“匿名”的 Logger,其名稱未存儲在 Logger 名稱空間中。
可通過調用某個 getLogger 處理器方法來獲得 Logger 物件。這些方法要麼創建一個新 Logger,要麼返回一個合適的現有 Logger。
日誌訊息被轉發到已註冊的 Handler 物件,該物件可以將訊息轉發到各種目的地,包括終端機、檔案、OS 日誌等等。
每個 Logger 都追蹤一個“父”Logger,也就是 Logger 名稱空間中與其最近的現有祖先。
每個 Logger 都有一個與其相關的 "Level"。這反映了此 logger 所關心的最低 Level。如果將 Logger 的級別設置為 null,那麼它的有效級別繼承自父 Logger,這可以通過其父 Logger 一直沿階層樹向上遞歸得到。
可以根據日誌配置檔案的屬性來配置日誌級別,在 LogManager 類別的描述中對此有所說明。但是也可以通過調用 Logger.setLevel 方法動態地改變它。如果日誌級別改變了,則此變化也會影響它的子 logger,因為任何級別為 null 的子 logger 的有效級別都繼承自它的父 Logger。
對於每次日誌記錄調用,Logger 最初都依照 logger 的有效日誌級別對請求級別(例如 SEVERE 或 FINE)進行簡單的檢查。如果請求級別低於日誌級別,則日誌記錄調用將立即返回。
通過此初始(簡單)測試後,Logger 將分派一個 LogRecord 來描述日誌記錄訊息。接著調用 Filter(如果存在)進行更詳細的檢查,以確定是否應該發佈該記錄。如果檢查通過,則將 LogRecord 發佈到其輸出 Handler。在預設情況下,logger 也將 LogRecord 沿階層樹遞推發佈到其父 Handler。
每個 Logger 都有一個與其關聯的 ResourceBundle 名稱。該指定的套件用於本地化日誌訊息。如果一個 Logger 沒有自己的 ResourceBundle 名稱,則它將通過其父 Logger 沿階層樹遞歸繼承到 ResourceBundle 名稱。
大多數 logger 輸出方法都帶有 "msg" 參數。此 msg 參數可以是一個原始值,也可以是一個本地化的鍵。在格式化期間,如果 logger 具有(或繼承)一個本地化 ResourceBundle,並且 ResourceBundle 套件含 msg 字元串的映射關係,那麼用本地化值替換 msg 字元串。否則使用原來的 msg 字元串。通常,格式器使用 java.text.MessageFormat 形式的格式來格式化參數,例如,格式字元串 "{0} {1}" 將兩個參數格式化為字元串。
將 ResourceBundle 名稱映射到 ResourceBundle 時,Logger 首先試圖使用該執行緒的 ContextClassLoader。如果 ContextClassLoader 為 null,則 Logger 將嘗試 SystemClassLoader。作為初始實作中的臨時過渡功能,如果 Logger 無法從 ContextClassLoader 或 SystemClassLoaderis 中找到一個 ResourceBundle,則 Logger 將會向上搜尋類別堆疊(stack)空間並連續調用 ClassLoader 來試圖找到 ResourceBundle(此調用堆疊(stack)空間搜尋是為了允許容器過渡到使用 ContextClassLoader,該功能可能在以後版本中取消)。
格式化(包括本地化)是輸出 Handler 的責任,它通常會調用格式器。
注意,格式化不必同步發生。它可以延遲,直到 LogRecord 被實際寫入到外部接收器。
日誌記錄方法劃分為 5 個主要類別別:
一系列的 "log" 方法,這種方法帶有日誌級別、訊息字元串,以及可選的一些訊息字元串參數。
一系列的 "logp" 方法(即 "log precise"),其與 "log" 方法相似,但是帶有顯式的源類別名稱和方法名稱。
一系列的 "logrb" 方法(即 "log with resource bundle"),其與 "logp" 方法相似,但是帶有顯式的在本地化日誌訊息中使用的資源套件名稱。
還有追蹤方法條目("entering" 方法)、方法返回("exiting" 方法)和拋出異常("throwing" 方法)的便捷方法。
最後,還有一系列在非常簡單的情況下(如開發人員只想為給定的日誌級別記錄一條簡單的字元串)使用的便捷方法。這些方法按標準級別名稱命名("severe"、"warning"、"info" 等等),並帶有單個參數,即一個訊息字元串。
對於不帶顯式源名和方法名的方法,日誌記錄框架將盡可能確定日誌記錄方法中調用了哪個類別和方法。但是應認識到,這樣自動推斷的資訊可能只是近似的,甚至可能是完全錯誤的。這是因為允許虛擬機器在 JIT 編譯時可以進行廣泛的優化,並且可以完全移除堆疊(stack)空間幀,導致它無法可靠地找到調用的類別和方法。
Logger 上執行的所有方法都是多執行緒安全的。
子類別化資訊:注意,對於名稱空間中的任意點,LogManager 類別都可以提供自身的指定 Logger 實作。因此,Logger 的任何子類別(它們與新的 LogManager 類別一起實作的情況除外)要注意應該從 LogManager 類別獲得一個 Logger 實例,並應該將諸如 "isLoggable" 和 "log(LogRecord)" 這樣的操作委託給該實例。注意,為了截取所有的日誌記錄輸出,子類別只需要覆寫 log(LogRecord) 方法。所有其他日誌記錄方法作為在此 log(LogRecord) 方法上的調用而實作。
欄位摘要 | |
---|---|
static Logger |
global
已過時。 此欄位的初始化會容易出現死鎖。必須由 Logger 類別初始化來初始化欄位,這可能會導致 LogManager 類別初始化的死鎖。在這種情況下,兩個類別初始化都要等待對方完成。從 JDK version 1.6 開始,獲取全體 logger 物件的首選方法是通過調用 Logger.getLogger(Logger.GLOBAL_LOGGER_NAME) 。 |
static String |
GLOBAL_LOGGER_NAME
GLOBAL_LOGGER_NAME 是全體 logger 的一個名稱。 |
建構子摘要 | |
---|---|
protected |
Logger(String name,
String resourceBundleName)
受保護的方法,它用於為一個指定子系統的建構 logger。 |
方法摘要 | |
---|---|
void |
addHandler(Handler handler)
添加一個日誌 Handler 以接收日誌記錄訊息。 |
void |
config(String msg)
記錄一條 CONFIG 訊息。 |
void |
entering(String sourceClass,
String sourceMethod)
記錄一個方法條目。 |
void |
entering(String sourceClass,
String sourceMethod,
Object param1)
記錄一個方法條目,帶有一個參數。 |
void |
entering(String sourceClass,
String sourceMethod,
Object[] params)
記錄一個方法條目,帶有一組參數。 |
void |
exiting(String sourceClass,
String sourceMethod)
記錄一個方法返回。 |
void |
exiting(String sourceClass,
String sourceMethod,
Object result)
記錄一個方法返回,帶有結果物件。 |
void |
fine(String msg)
記錄一條 FINE 訊息。 |
void |
finer(String msg)
記錄一條 FINER 訊息。 |
void |
finest(String msg)
記錄一條 FINEST 訊息。 |
static Logger |
getAnonymousLogger()
創建一個匿名的 Logger。 |
static Logger |
getAnonymousLogger(String resourceBundleName)
創建一個匿名的 Logger。 |
Filter |
getFilter()
獲取此 Logger 的當前過濾器。 |
Handler[] |
getHandlers()
獲得與此 logger 相關的 Handler。 |
Level |
getLevel()
獲取已為此 Logger 指定的日誌級別(Level)。 |
static Logger |
getLogger(String name)
為指定子系統尋找或創建一個 logger。 |
static Logger |
getLogger(String name,
String resourceBundleName)
為指定子系統尋找或創建一個 logger。 |
String |
getName()
獲取此 logger 的名稱。 |
Logger |
getParent()
返回此 Logger 的父 logger。 |
ResourceBundle |
getResourceBundle()
獲取此 logger 在當前預設語言環境的本地化資源套件。 |
String |
getResourceBundleName()
獲取此 logger 的本地化資源套件名稱。 |
boolean |
getUseParentHandlers()
獲知此 logger 是否將其輸出發送到它的父 logger。 |
void |
info(String msg)
記錄一條 INFO 訊息。 |
boolean |
isLoggable(Level level)
檢查給定級別的訊息實際上是否由此 logger 記錄。 |
void |
log(Level level,
String msg)
記錄一條不帶參數的訊息。 |
void |
log(Level level,
String msg,
Object param1)
記錄帶有一個物件參數的訊息。 |
void |
log(Level level,
String msg,
Object[] params)
記錄帶有一組物件參數的訊息。 |
void |
log(Level level,
String msg,
Throwable thrown)
記錄帶有相關的可拋出資訊的訊息。 |
void |
log(LogRecord record)
記錄一條 LogRecord。 |
void |
logp(Level level,
String sourceClass,
String sourceMethod,
String msg)
記錄一條訊息,具有指定的源類別和方法,不帶參數。 |
void |
logp(Level level,
String sourceClass,
String sourceMethod,
String msg,
Object param1)
記錄一條訊息,具有指定的源類別和方法,帶有單個日誌訊息的物件參數。 |
void |
logp(Level level,
String sourceClass,
String sourceMethod,
String msg,
Object[] params)
記錄一條訊息,具有指定的源類別和方法,帶有一組物件參數。 |
void |
logp(Level level,
String sourceClass,
String sourceMethod,
String msg,
Throwable thrown)
記錄一條訊息,具有指定源類別和方法,帶有相關的可拋出資訊。 |
void |
logrb(Level level,
String sourceClass,
String sourceMethod,
String bundleName,
String msg)
記錄一條訊息,具有指定的源類別、方法和資源包名,不帶參數。 |
void |
logrb(Level level,
String sourceClass,
String sourceMethod,
String bundleName,
String msg,
Object param1)
記錄一條訊息,具有指定的源類別、方法和資源包名,帶有單個日誌訊息的物件參數。 |
void |
logrb(Level level,
String sourceClass,
String sourceMethod,
String bundleName,
String msg,
Object[] params)
記錄一條訊息,具有指定的源類別、方法和資源包名,帶有一組物件參數。 |
void |
logrb(Level level,
String sourceClass,
String sourceMethod,
String bundleName,
String msg,
Throwable thrown)
記錄一條訊息,具有指定的源類別、方法和資源包名,帶有相關的可拋出物件。 |
void |
removeHandler(Handler handler)
移除一個日誌 Handler。 |
void |
setFilter(Filter newFilter)
設置過濾器以控制此 Logger 的輸出。 |
void |
setLevel(Level newLevel)
設置日誌級別,指定此 logger 記錄的訊息級別。 |
void |
setParent(Logger parent)
設置此 Logger 的父 Logger。 |
void |
setUseParentHandlers(boolean useParentHandlers)
指定此 logger 是否應該將其輸出發送到它的父 Logger。 |
void |
severe(String msg)
記錄一條 SEVERE 訊息。 |
void |
throwing(String sourceClass,
String sourceMethod,
Throwable thrown)
正拋出異常的記錄。 |
void |
warning(String msg)
記錄一條 WARNING 訊息。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String GLOBAL_LOGGER_NAME
獲取全體 logger 的首選方法是通過調用 Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)
。
@Deprecated public static final Logger global
Logger.getLogger(Logger.GLOBAL_LOGGER_NAME)
。
建構子詳細資訊 |
---|
protected Logger(String name, String resourceBundleName)
該 logger 初始配置的 Level 為 null,並且 useParentHandler 為 true。
name
- logger 的名稱。這應該是一個圓點分隔的名稱,並且通常應該基於子系統的套件名或類別名(如 java.net 或 javax.swing)。對於匿名 Logger 來說,名稱可以為 null。resourceBundleName
- 用來本地化此 logger 訊息的 ResourceBundle 的名稱。如果訊息不需要本地化,則名稱可能為 null。
MissingResourceException
- 如果 ResourceBundleName 不為 null,並且無法找到相應的資源。方法詳細資訊 |
---|
public static Logger getLogger(String name)
如果創建了新的 logger,則根據 LogManager 的配置來配置其日誌級別,並將日誌輸出發送到其父處理程序。日誌配置註冊在 LogManager 全體名稱空間內。
name
- logger 的名稱。這應該是一個圓點分隔的名稱,並且通常應該基於子系統的套件名或類別名(如 java.net 或 javax.swing)
NullPointerException
- 如果 name 為 null。public static Logger getLogger(String name, String resourceBundleName)
如果創建了新的 logger,則根據 LogManager 來配置其日誌級別,並將日誌輸出發送到其父處理程序。日誌配置註冊在 LogManager 全體名稱空間內。
如果指定的 Logger 已經存在,並且沒有本地化資源包,則使用給定的資源套件名稱。如果給定的 Logger 已經存在,並有不同的資源套件名稱,則拋出 IllegalArgumentException。
name
- logger 的名稱。這應該是一個圓點分隔的名稱,並且通常應該基於子系統的套件名或類別名(如 java.net 或 javax.swing)。resourceBundleName
- 用來本地化此 logger 訊息的 ResourceBundle 的名稱。如果訊息不需要本地化,則名稱可以為 null
。
MissingResourceException
- 如果無法找到指定的 ResourceBundle。
IllegalArgumentException
- 如果 Logger 已經存在,並使用了不同的資源套件名稱。
NullPointerException
- 如果 name 為 null。public static Logger getAnonymousLogger()
此處理器方法主要適合從 applet 來使用。因為得到的 Logger 是匿名的,所以它可通過創建類別而保持為私有的。這就不需要進行常規安全檢查,從而允許不受信任的 applet 程式碼可更新 Logger 的控制狀態。例如,applet 可以在匿名的 Logger 上執行 setLevel 或 addHandler 操作。
即使新的 logger 是匿名的,也要配置它將根 logger ("") 作為其父 logger。這意味著在預設情況下此 logger 從根 logger 繼承有效級別和處理程序。
public static Logger getAnonymousLogger(String resourceBundleName)
此處理器方法主要適合從 applet 使用。因為得到的 Logger 是匿名的,所以它可通過創建類別而保持為私有的。這就不需要進行常規安全檢查,從而允許不受信任的 applet 程式碼可更新 Logger 的控制狀態。例如,applet 可以在匿名的 Logger 上執行 setLevel 或 addHandler 操作。
即使新的 logger 是匿名的,也要把它配置為將根 logger ("") 作為其父 logger。這意味著在預設情況下此 logger 從根 logger 繼承有效級別和處理程序。
resourceBundleName
- 用來本地化此 logger 訊息的 ResourceBundle 的名稱。如果訊息不需要本地化,則名稱可以為 null。
MissingResourceException
- 如果無法找到指定的 ResourceBundle。public ResourceBundle getResourceBundle()
public String getResourceBundleName()
public void setFilter(Filter newFilter) throws SecurityException
通過初始的“級別”檢查之後,Logger 將調用此 Filter 以檢查是否確實應該發佈某個日誌記錄。
newFilter
- filter 物件(可能為 null)
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public Filter getFilter()
public void log(LogRecord record)
此類別中的其他所有日誌記錄方法都調用此方法以實際執行所有日誌記錄操作。子類別可以覆寫此單個方法,從而捕獲所有的日誌活動。
record
- 要發佈的 LogRecordpublic void log(Level level, String msg)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREmsg
- 字元串訊息(或訊息類別別中的鍵)public void log(Level level, String msg, Object param1)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREmsg
- 字元串訊息(或訊息類別別中的鍵)param1
- 訊息的參數public void log(Level level, String msg, Object[] params)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREmsg
- 字元串訊息(或訊息類別別中的鍵)params
- 訊息的一組參數public void log(Level level, String msg, Throwable thrown)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的參數存儲在 LogRecord 中,而 LogRecord 則被轉發到所有已註冊的輸出處理程序。
注意,拋出的參數存儲在 LogRecord 拋出屬性中,而不是存儲在 LogRecord 參數屬性中。因此特別通過輸出 Formatter 來處理參數,而不是將其視為 LogRecord 訊息屬性的格式化參數。
level
- 某個訊息級別標識符,例如 SEVEREmsg
- 字元串訊息(或訊息類別別中的鍵)thrown
- 與日誌訊息相關的可拋出物件。public void logp(Level level, String sourceClass, String sourceMethod, String msg)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名msg
- 字元串訊息(或訊息類別別中的鍵)public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object param1)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名msg
- 字元串訊息(或訊息類別別中的鍵)param1
- 日誌訊息的參數。public void logp(Level level, String sourceClass, String sourceMethod, String msg, Object[] params)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名msg
- 字元串訊息(或訊息類別別中的鍵)params
- 訊息的一組參數public void logp(Level level, String sourceClass, String sourceMethod, String msg, Throwable thrown)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的參數存儲在 LogRecord 中,而 LogRecord 則被轉發到所有已註冊的輸出處理程序。
注意,拋出的參數存儲在 LogRecord 拋出屬性中,而不是存儲在 LogRecord 參數屬性中。因此特別通過輸出 Formatter 來處理參數,而不是將其視為 LogRecord 訊息屬性的格式化參數。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名msg
- 字元串訊息(或訊息類別別中的鍵)thrown
- 與日誌訊息相關的可拋出物件。public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
使用指定的資源包本地化 msg 字元串。如果資源包名為 null,或者一個空 String 或無效,那麼不本地化 msg 字元串。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名bundleName
- 本地化 msg 的資源包名(可能為 null)msg
- 字元串訊息(或訊息類別別中的鍵)public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object param1)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
使用指定的資源包本地化 msg 字元串。如果資源包名為 null,或者一個空 String 或無效,那麼不本地化 msg 字元串。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名bundleName
- 本地化 msg 的資源包名,可以為 nullmsg
- 字元串訊息(或訊息類別別中的鍵)param1
- 日誌訊息的參數。public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Object[] params)
如果當前對於給定的訊息級別而言 logger 是啟用的,則創建相應的 LogRecord 並轉發到所有已註冊的輸出 Handler 物件。
使用指定的資源包本地化 msg 字元串。如果資源包名為 null,或者一個空 String 或無效,那麼不本地化 msg 字元串。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名bundleName
- 本地化 msg 的資源包名(可能為 null)msg
- 字元串訊息(或訊息類別別中的鍵)params
- 訊息的一組參數public void logrb(Level level, String sourceClass, String sourceMethod, String bundleName, String msg, Throwable thrown)
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的參數存儲在 LogRecord 中,而 LogRecord 則被轉發到所有已註冊的輸出處理程序。
使用指定的資源包本地化 msg 字元串。如果資源包名為 null,或者一個空 String 或無效,那麼不本地化 msg 字元串。
注意,拋出的參數存儲在 LogRecord 拋出屬性中,而不是存儲在 LogRecord 參數屬性中。因此特別通過輸出 Formatter 來處理參數,而不是將其視為 LogRecord 訊息屬性的格式化參數。
level
- 某個訊息級別標識符,例如 SEVEREsourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 發出日誌記錄請求的方法名bundleName
- 本地化 msg 的資源包名,可以為 nullmsg
- 字元串訊息(或訊息類別別中的鍵)thrown
- 與日誌訊息相關的可拋出物件。public void entering(String sourceClass, String sourceMethod)
這是一個可為方法記錄條目的便捷方法。記錄帶訊息 "ENTRY" 的 LogRecord、日誌級別 FINER、給定的 sourceMethod 和 sourceClass。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 所輸入的方法名public void entering(String sourceClass, String sourceMethod, Object param1)
這是一個可為方法記錄條目的便捷方法。記錄帶訊息 "ENTRY {0}" 的 LogRecord、日誌級別 FINER,以及給定的 sourceMethod、sourceClass 和參數。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 所輸入的方法名param1
- 所輸入的方法參數public void entering(String sourceClass, String sourceMethod, Object[] params)
這是一個可為方法記錄條目的便捷方法。記錄帶訊息 "ENTRY"(後跟格式 {N} 指示符表示參數陣列中的每個條目)的 LogRecord、日誌級別 FINER、給定的 sourceMethod、sourceClass 和參數。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 所輸入的方法名params
- 所輸入的一組方法參數public void exiting(String sourceClass, String sourceMethod)
這是一個便捷方法,可以用來記錄一個方法的返回。記錄帶有訊息 "RETURN" 的 LogRecord、日誌級別 FINER、給定的 sourceMethod 和 sourceClass。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 方法名public void exiting(String sourceClass, String sourceMethod, Object result)
這是一個便捷方法,可以用來記錄從方法返回物件。記錄帶訊息 "RETURN {0}" 的 LogRecord、日誌級別 FINER、給定的 sourceMethod、sourceClass 和結果物件。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 方法名result
- 所返回的 Objectpublic void throwing(String sourceClass, String sourceMethod, Throwable thrown)
這是一個便捷方法,可以用來記錄某個方法拋出了異常並終止。使用 FINER 級別進行日誌記錄。
如果當前對於給定的訊息級別而言 logger 是啟用的,那麼將給定的參數存儲在 LogRecord 中,而 LogRecord 則被轉發到所有已註冊的輸出處理程序。將 LogRecord 的訊息設置為 "THROW"。
注意,拋出的參數存儲在 LogRecord 拋出屬性中,而不是存儲在 LogRecord 參數屬性中。因此特別通過輸出 Formatter 來處理參數,而不是將其視為 LogRecord 訊息屬性的格式化參數。
sourceClass
- 發出日誌記錄請求的類別名sourceMethod
- 方法名thrown
- 所拋出的可拋出物件public void severe(String msg)
如果當前對於 SEVERE 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void warning(String msg)
如果當前對於 WARNING 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void info(String msg)
如果當前對於 INFO 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void config(String msg)
如果當前對於 CONFIG 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void fine(String msg)
如果當前對於 FINE 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void finer(String msg)
如果當前對於 FINER 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void finest(String msg)
如果當前對於 FINEST 訊息級別而言 logger 是啟用的,那麼將給定的訊息轉發到所有已註冊的輸出 Handler 物件。
msg
- 字元串訊息(或訊息類別別中的鍵)public void setLevel(Level newLevel) throws SecurityException
如果新的級別為 null,則意味著此節點應該繼承它最近的祖先(具有特定的非 null 級別值)的級別。
newLevel
- 日誌級別的新值。
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public Level getLevel()
public boolean isLoggable(Level level)
level
- 訊息日誌記錄的級別
public String getName()
public void addHandler(Handler handler) throws SecurityException
在預設情況下,Logger 還將其輸出發送到它們的父 logger 中。通常,根 Logger 配置有一組 Handler,這些 Handler 本質上作為所有 logger 的預設處理程序。
handler
- 日誌記錄 Handler
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")public void removeHandler(Handler handler) throws SecurityException
如果無法找到給定的 Handler 或其為 null,則靜默返回。
handler
- 日誌記錄 Handler
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public Handler[] getHandlers()
public void setUseParentHandlers(boolean useParentHandlers)
useParentHandlers
- 如果要將輸出發送到其父 logger,則為 true。
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public boolean getUseParentHandlers()
public Logger getParent()
此方法返回名稱空間中最近的現存父 logger。因此,如果一個 Logger 名為 "a.b.c.d",並且已經創建了一個名為 "a.b" 的 logger,但是不存在名為 "a.b.c" 的 logger,那麼對 Logger "a.b.c.d" 調用 getParent 將返回 Logger "a.b"。
如果對名稱空間中的根 Logger 調用該方法,則結果為 null。
public void setParent(Logger parent)
不應該從應用程序程式碼中調用此方法。
parent
- 新的父 logger
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。