本章簡要說明如何使用 管理主控台 來配置記錄和檢視伺服器記錄。它包含以下小節:
Application Server 使用 JSR 047 中指定的 Java 2 平台記錄 API。Application Server 記錄訊息記錄在伺服器記錄中,通常位於 domain-dir/logs/server.log 中。
domain-dir/logs 目錄中除了包含伺服器記錄之外,還包含兩種其他類型的記錄。access 子目錄中包含 HTTP 服務存取記錄,tx 子目錄中包含作業事件服務記錄。如需有關這些記錄的資訊,請參閱配置 HTTP 服務存取記錄和配置作業事件。
Application Server 的元件可產生記錄輸出。應用程式元件也可以產生記錄輸出。
應用程式元件可以使用 Apache Commons Logging Library 來記錄訊息。但是,建議採用平台標準 JSR 047 API 以獲得更好的記錄配置。
記錄檔的記錄遵循以下統一格式:
[#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]
例如︰
[#|2004-10-21T13:25:53.852-0400|INFO|sun-appserver-e8.1|javax.enterprise. system.core|_ThreadID=13;|CORE5004: Resource Deployed: [cr:jms/DurableConnectionFactory].|#]
在本範例中,
[# 和 #] 標示該記錄的開頭和結尾。
垂直線 (|) 用於分隔記錄欄位。
2004-10-21T13:25:53.852-0400 指定了日期和時間。
Log Level 為 INFO。此層級可以是以下任何值:SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。
ProductName-Version 為 sun-appserver-ee8.1 。
LoggerName 是用於識別記錄模組來源的階層式記錄程式名稱空間,在此範例中為 javax.enterprise.system.core。
Key Value Pairs 為鍵名和鍵值,通常為執行緒 ID,例如 _ThreadID=14;。
Message 是記錄訊息的文字。對於所有的 Application Server SEVERE 和 WARNING 訊息以及多種 INFO,它均以包含模組代碼和數值的訊息 ID 開頭 (在此範例中為 CORE5004)。
以後的版本中,可能會變更或增強記錄檔的記錄格式。
Application Server 為它的每個模組都提供了記錄程式。下表依照模組名稱和名稱空間在 管理主控台 的 [記錄層級] 頁面中的顯示方式 (請參閱配置記錄層級),依字母順序列出每個記錄程式的模組名稱和名稱空間。[記錄層級] 頁面中未顯示表中最後三個模組。
表 15–1 Application Server 記錄程式名稱空間
模組名稱 |
名稱空間 |
---|---|
管理 |
javax.enterprise.system.tools.admin |
Classloader |
javax.enterprise.system.core.classloading |
CMP |
javax.enterprise.system.container.cmp |
配置 |
javax.enterprise.system.core.config |
連接器 |
javax.enterprise.resource.resourceadapter |
CORBA |
javax.enterprise.resource.corba |
部署 |
javax.enterprise.system.tools.deployment |
EJB 容器 |
javax.enterprise.system.container.ejb |
JavaMail |
javax.enterprise.resource.javamail |
JAXR |
javax.enterprise.resource.webservices .registry |
JAX-RPC |
javax.enterprise.resource.webservices.rpc |
JDO |
javax.enterprise.resource.jdo |
JMS |
javax.enterprise.resource.jms |
JTA |
javax.enterprise.resource.jta |
JTS |
javax.enterprise.system.core.transaction |
MDB 容器 |
javax.enterprise.system.container.ejb.mdb |
命名 |
javax.enterprise.system.core.naming |
節點代理程式 (僅限於 Enterprise Edition) |
javax.ee.enterprise.system.nodeagent |
根 |
javax.enterprise |
SAAJ |
javax.enterprise.resource.webservices.saaj |
安全性 |
javax.enterprise.system.core.security |
伺服器 |
javax.enterprise.system |
同步 (僅限於 Enterprise Edition) |
javax.ee.enterprise.system.tools .synchronization |
Util |
javax.enterprise.system.util |
檢驗器 |
javax.enterprise.system.tools.verifier |
Web 容器 |
javax.enterprise.system.container.web |
核心 |
javax.enterprise.system.core |
系統輸出 (System.out.println) |
javax.enterprise.system.stream.out |
系統錯誤 (System.err.println) |
javax.enterprise.system.stream.err |
在樹形元件中,展開 [節點代理程式] 節點或 [配置] 節點。
選取節點代理程式,或者選取要配置的實例:
對於節點代理程式,請選取 [記錄程式設定] 標籤。對於配置,請選取 [記錄程式設定] 節點。
在 [記錄設定] 頁面中,可以使用以下欄位來自訂記錄:
記錄檔 — 若要為伺服器記錄檔指定替代名稱或位置,請在文字欄位中鍵入新的路徑名稱。依預設,該位置為 domain-dir/logs/server.log。
警示 — 若要經由 JMX 架構路由 SEVERE 和 WARNING 訊息,請選取 [啟用] 核取方塊。
寫入系統記錄 — 僅在 Solaris 和 Linux 系統中,當除了要將記錄輸出傳送給伺服器記錄外,還要將其傳送給 syslog 工具時,請選取 [啟用] 核取方塊。
記錄處理程式 — 若要將記錄傳送到 server.log 或 syslog 以外的目標,您可以插入自訂記錄處理程式。自訂處理程式必須延伸 java.util.logging.Handler 類別 (JSR 047 相容 API)。在 [記錄處理程式] 欄位中鍵入處理程式的絕對類別名稱。還應將處理程式類別置於 Application Server 類別路徑中,以便在伺服器啟動期間安裝該處理程式。自訂處理程式之記錄檔記錄將具有記錄檔的記錄中說明的格式。
記錄篩選器 — 若要篩選傳送給目標 (例如 server.log、syslog 或由自訂記錄處理程式指定的目標) 的記錄檔記錄,可以插入自訂記錄篩選器。該自訂篩選器必須實作 java.util.logging.Filter 介面。在 [記錄篩選器] 欄位中鍵入篩選器的絕對類別名稱。還應將篩選器類別置於 Application Server 類別路徑中,以便在伺服器啟動期間安裝該篩選器。
檔案自動重建限制:如果伺服器記錄的位元組數達到了指定大小,請建立一個名為 server.log 的新的空檔案,並將舊檔案重新命名為 server.log_date,其中 date 是自動重建檔案的日期和時間。預設值為 2 百萬位元組。該限制的最小值為 500 千位元組;如果指定較低的值,則要在達到 500 KB 時該檔案才自動重建。若要關閉記錄檔自動重建,請將該值設定為 0。
檔案自動重建時間限制 — 達到指定的分鐘數之後才自動重建伺服器記錄。預設值為零,這表示檔案達到 [檔案自動重建限制] 欄位中指定的大小即會自動重建。如果指定了非零的時間限制,則該時間限制優先於上述大小限制。
按一下 [儲存],以儲存變更。按一下 [檢視記錄檔] 以檢視伺服器記錄。
在樹形元件中,展開 [節點代理程式] 節點或 [配置] 節點。
選取節點代理程式,或者選取要配置的實例:
對於節點代理程式,請選取 [記錄層級] 標籤。對於配置,請選取 [記錄程式設定] 節點,然後選取 [記錄層級] 標籤。
在 [模組記錄層級] 頁面中,請從要變更記錄層級的一個或多個模組相對的下拉式清單中選擇一個新值。
預設層級為 INFO,表示處於該層級或更高層級 (WARNING、SEVERE) 的訊息將顯示在記錄中。可以選擇以下任一值 (以最高層級至最低層級的順序列示):
SEVERE
WARNING
INFO
CONFIG
FINE
FINER
FINEST
OFF
使用 [附加特性] 區域可以為任何應用程式記錄程式配置記錄層級。
特性名稱是記錄程式名稱空間,其值為上述八個可能的層級之一。例如,特性名稱可為 samples.logging.simple.servlet,值可為 FINE。
還可以使用此區域來變更子模組的記錄層級,例如 CORBA 模組的傳輸子模組:
javax.enterprise.resource.corba.ORBId.transport |
按一下 [儲存] 以儲存變更,或按一下 [預設] 以復原預設值。
對 System.out.println 的呼叫均在 INFO 層級使用記錄程式名稱 javax.enterprise.system.stream.out 予以記錄。對 System.err.println 的呼叫均在 WARNING 層級使用記錄程式名稱 javax.enterprise.system.stream.err 予以 記錄。若要從這些來源關閉記錄,請在 [附加特性] 區域中將記錄程式名稱的值指定為 OFF。
對記錄層級設定所做的變更將立即生效。同時將在 domain.xml 檔案中儲存這些變更,以供伺服器重新啟動時使用。
在樹形元件中,展開要檢視其記錄的伺服器實例的節點。
在 [一般資訊] 頁面中,按一下 [檢視記錄檔]。
使用 [搜尋條件] 區域自訂和篩選記錄檢視器。使用如下所示的基本欄位:
實例名稱 — 從下拉式清單中選擇一個實例名稱,以檢視該伺服器實例的記錄。預設值為目前伺服器實例。
記錄檔 — 從下拉式清單中選擇一個記錄檔名稱,以檢視該記錄的內容。預設為 server.log。
時間戳記 — 若要檢視最新的訊息,請選取 [最新] (預設)。如果只檢視特定時間段內的訊息,請選取 [特定範圍] 並在顯示的 [從] 欄位和 [到] 欄位中鍵入日期和時間值。對於時間值,其語法必須採用以下格式 (SSS 表示毫秒):
hh:mm:ss.SSS |
例如︰
17:10:00.000 |
如果 [從] 欄位中的時間值遲於 [到] 欄位中的時間值,將顯示錯誤訊息。
記錄層級 — 若要依照記錄層級篩選訊息,請從下拉式清單中選擇一種記錄層級。依預設,將顯示伺服器記錄中選取記錄層級和更嚴重記錄層級的所有訊息。選取標有 [不包含更高層級的訊息] 的核取方塊,可僅顯示所選層級的訊息。
若要確定您要檢視的訊息都顯示在伺服器記錄中,請先在 [記錄層級] 頁面中設定適當的記錄層級。請參閱配置記錄層級。
如果您選擇基於記錄層級篩選記錄訊息,則將只顯示符合指定篩選條件的訊息。不過,這種篩選不影響那些記錄到伺服器記錄中的訊息。
將顯示伺服器記錄中最新的 40 個項目以及在 [記錄設定] 和 [記錄層級] 頁面中指定的設定。
按一下 [時間戳記] 標頭旁邊的三角形對這些訊息進行排序,以使最新的訊息顯示在最後。
若要檢視訊息的格式化版本,請按一下標示的連結
(details) |
將顯示標有 [記錄項目詳細資訊] 的視窗,該視窗包含了訊息的格式化版本。
在項目清單的末尾,按一下按鈕以檢視記錄檔中較早或較晚的項目。
按一下 [搜尋條件] 區域中的 [進階搜尋] 以進一步細化記錄檢視器的搜尋條件。使用如下所示的 [進階選項] 欄位:
記錄程式 — 若要依模組進行篩選,請從下拉式清單中選擇一個或多個名稱空間。按住 Shift 鍵並按一下或按住 Ctrl 鍵並按一下來選擇多個名稱空間。
選取更高層級的名稱空間也就選取了該名稱空間下的所有名稱空間。例如,選取 javax.enterprise.system 的同時也就選取了該名稱空間下所有模組的記錄程式:javax.enterprise.system.core、javax.enterprise.system.tools.admin 等等。
自訂記錄程式 — 若要檢視特定於某個特定應用程式的記錄程式中的訊息,請在文字欄位中鍵入記錄程式名稱 (每行一個名稱)。如果應用程式具有多個模組,您可以檢視任何模組,也可以檢視所有模組。例如,假定應用程式具有使用以下名稱的記錄程式:
com.mycompany.myapp.module1 com.mycompany.myapp.module2 com.mycompany.myapp.module3 |
若要檢視應用程式中的所有模組的訊息,請鍵入 com.mycompany.myapp。若要僅檢視 module2 的訊息,請鍵入 com.mycompany.myapp.module2。
如果指定了一個或多個自訂記錄程式,則僅當您在 [記錄程式] 區域中明確指定 Application Server 模組的訊息後,才會顯示這些訊息。
名稱值對 — 若要檢視特定執行緒的輸出,請在文字欄位中鍵入該執行緒的鍵名和鍵值。鍵名為 _ThreadID。例如︰
_ThreadID=13 |
假定 com.mycompany.myapp.module2 在多個執行緒中執行。若要限制記錄檢視器使其只顯示單一執行緒的輸出,請在 [自訂記錄程式] 欄位中指定該模組的記錄程式,然後在此欄位中指定執行緒 ID。
顯示 — 若要一次檢視 40 條以上的訊息 (預設),請從下拉式清單中選擇其他可用的值 (100、250 或 1000)。
若要檢視堆疊追蹤,請取消選取 [限制過長訊息] 核取方塊。依預設,檢視器中不會顯示堆疊追蹤;若要檢視堆疊追蹤,請按一下訊息的 [(詳細資訊)] 連結。
按一下 [基本搜尋] 可以隱藏 [進階選項] 區域。