|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.logging.LogManager
public class LogManager
存在一個單一的全體 LogManager 物件,它可用於維護 Logger 和日誌服務的一組共享狀態。
此 LogManager 物件:
可以使用 LogManager.getLogManager() 獲取全體 LogManager 物件。LogManager 物件是在類別初始化過程中創建的,過後便不能更改。
在啟動時,使用 java.util.logging.manager 系統屬性定位 LogManager 類別。
預設情況下,LogManager 從 JRE 目錄的屬性檔案 "lib/logging.properties" 中讀取其初始配置。如果編輯該屬性檔案,則可更改此 JRE 的所有使用者的預設日誌配置。
另外,LogManager 使用兩個可選的允許更好地控制初始配置讀取的系統屬性:
如果設置了 "java.util.logging.config.class" 屬性,則會把屬性值當作類別名。給定的類別將會被載入,並會實例化一個物件,該物件的建構子負責讀取初始配置。(此物件可以使用其他系統屬性來控制自己的配置。)此備用配置類別可使用 readConfiguration(InputStream) 來定義 LogManager 中的屬性。
如果未設置 "java.util.logging.config.class" 屬性,則會使用 "java.util.logging.config.file" 系統屬性來指定一個屬性檔案(以 java.util.Properties 格式)。從此檔案讀取初始日誌配置。
如果這兩個屬性都沒有定義,則如上所述,LogManager 將從 JRE 目錄的屬性檔案 "lib/logging.properties" 中讀取其初始配置。
Logger 和 Handler 的屬性名稱是以圓點分隔的 Logger 或 Handler 的名稱開頭。
全體日誌屬性可以包括:
注意,在 LogManager 配置期間載入的全部類別,其搜尋順序是先從系統類別路徑中搜尋,然後才從使用者類別中搜尋。這包括 LogManager 類別、任何 config 類別和任何 handler 類別。
Logger 是按其圓點分隔的名稱被組織到命名層次結構中的。因此,"a.b.c" 是 "a.b" 的子級,但 "a.b1" 和 a.b2" 屬於同一級。
假定所有以 ".level" 結尾的名稱的屬性為 Logger 定義日誌級別。因此,"foo.level" 就為名稱為 "foo" 的 logger 定義了日誌級別,進而為指定層次結構中它的所有子級也逐個定義了日誌級別。日誌級別是按其在屬性檔案中的定義順序應用的。因此,階層樹中子節點的級別設置應該遲於其父級設置。屬性名 ".level" 可用於設置階層樹的根級。
LogManager 物件上的所有方法都是多執行緒安全的。
欄位摘要 | |
---|---|
static String |
LOGGING_MXBEAN_NAME
LoggingMXBean 的 ObjectName 的字元串表示形式。 |
建構子摘要 | |
---|---|
protected |
LogManager()
受保護的建構子。 |
方法摘要 | |
---|---|
boolean |
addLogger(Logger logger)
添加指定的 logger。 |
void |
addPropertyChangeListener(PropertyChangeListener l)
添加重讀日誌屬性時調用的事件偵聽器。 |
void |
checkAccess()
檢查使用當前上下文來修改日誌配置是否受信任。 |
Logger |
getLogger(String name)
尋找指定 logger 的方法。 |
Enumeration<String> |
getLoggerNames()
獲取已知 logger 名稱的列舉。 |
static LoggingMXBean |
getLoggingMXBean()
返回管理 logger 的 LoggingMXBean。 |
static LogManager |
getLogManager()
返回全體 LogManager 物件。 |
String |
getProperty(String name)
獲取日誌屬性的值。 |
void |
readConfiguration()
重新初始化日誌屬性並重新讀取日誌配置。 |
void |
readConfiguration(InputStream ins)
從給定串流重新初始化並重新讀取日誌配置,該配置為 java.util.Properties 格式。 |
void |
removePropertyChangeListener(PropertyChangeListener l)
移除屬性更改事件的事件偵聽器。 |
void |
reset()
重置日誌配置。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String LOGGING_MXBEAN_NAME
LoggingMXBean
的 ObjectName
的字元串表示形式。
建構子詳細資訊 |
---|
protected LogManager()
方法詳細資訊 |
---|
public static LogManager getLogManager()
public void addPropertyChangeListener(PropertyChangeListener l) throws SecurityException
l
- 事件偵聽器
SecurityException
- 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
NullPointerException
- 如果 PropertyChangeListener 為 null。public void removePropertyChangeListener(PropertyChangeListener l) throws SecurityException
addPropertyChangeListener
在偵聽器表中添加同一個偵聽器實例,則需要調用相同數目的 removePropertyChangeListener
將該偵聽器的所有實例從偵聽器表中移除。
如果未找到給定的偵聽器,則預設返回。
l
- 事件偵聽器(可以為 null)
SecurityException
- 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。public boolean addLogger(Logger logger)
Logger 處理器方法調用此方法來註冊每個新創建的 Logger。
此應用程序應該保留其自身對 Logger 物件的參考,以避免自己被作為無用資訊收集。LogManager 僅可能保留弱參考。
logger
- 新 logger。
NullPointerException
- 如果 logger 名稱為 null。public Logger getLogger(String name)
注意,由於不受信任的程式碼可能使用任意名稱創建 logger,不能依賴於此方法為安全性敏感的日誌尋找 Logger。
name
- logger 的名稱
public Enumeration<String> getLoggerNames()
註:載入新類別時可能動態添加 Logger。此方法僅報告當前已註冊的 logger。
public void readConfiguration() throws IOException, SecurityException
使用與啟動時相同的規則尋找配置屬性。因此,通常從啟動時使用過的檔案重新讀取日誌屬性。
如果目標 Logger 存在,則使用 Logger.setLevel() 來應用新配置檔案中的所有日誌級別定義。
讀取這些屬性後將觸發 PropertyChangeEvent。
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。
IOException
- 如果讀取配置時存在 IO 問題。public void reset() throws SecurityException
對於所有指定的 logger,重置操作移除並關閉全部 Handler(除了根 logger 之外),並將級別設置為 null。根 logger 的級別設置為 Level.INFO。
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public void readConfiguration(InputStream ins) throws IOException, SecurityException
如果目標 Logger 存在,則使用 Logger.setLevel() 來應用新配置檔案中的所有日誌級別定義。
ins
- 從中讀取屬性的串流
SecurityException
- 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
IOException
- 如果從串流讀取時存在問題。public String getProperty(String name)
name
- 屬性名
public void checkAccess() throws SecurityException
如果此檢查失敗,則拋出 SecurityException;否則,正常返回。
SecurityException
- 如果安全管理器存在並且調用者不具有 LoggingPermission("control")。public static LoggingMXBean getLoggingMXBean()
平臺的 MBeanServer
方法得到。
LoggingMXBean
物件。ManagementFactory
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。