#### 記錄

記錄服務提供與 OpenSSO 管理相關的狀態及錯誤訊息。管理員可以配置如記錄檔大小及位置的值。OpenSSO 可將事件記錄於純文字檔案或關聯資料庫中。記錄服務屬性為全域屬性。這些屬性包括：

- 最大記錄大小

- 歷史檔案數量

- 記錄檔位置

- 記錄類型

- 資料庫使用者名稱

- 資料庫使用者密碼

- 資料庫使用者密碼 (確認)

- 資料庫驅動程式名稱

- 可配置的記錄欄位

- 記錄確認頻率

- 記錄簽名時間

- 安全記錄

- 最大記錄數

- 各歸檔檔案的檔案數

- 緩衝區大小

- DB 失敗記憶體緩衝區大小

- 緩衝區時間

- 時間緩衝

##### 最大記錄大小

此屬性接受 OpenSSO 記錄檔最大大小的值 (以位元組為單位)。預設值為 1000000。

##### 歷史檔案數量

此屬性的值與用於歷程分析而保留的備份記錄檔數目相等。視本機系統分割區與可用磁碟空間大小而定，可以輸入任何整數。預設值為 3。

檔案僅套用至 FILE 記錄類型。當記錄類型設為 DB 時，就不會有歷史檔案，OpenSSO 也不會明顯設定其大小限制。

備註 – 輸入 0 值將被視為與輸入 1 值相同，這表示若您指定 0，將建立歷程記錄檔。

##### 記錄檔位置

基於檔案的記錄功能需要可以儲存記錄檔的位置。預設位置為：

`CONFIG_DIR_SERVER_URI/logs`

`CONFIG_DIR_SERVER_URI/logs` 是一個標記，代表基底配置目錄和 OpenSSO 的伺服器 URI。在執行階段，記錄服務會判斷實例用於記錄的正確目錄。此屬性的值可以設定為明確的路徑，但是基底路徑應該是其配置目錄。

若指定了非預設目錄但是目錄不存在，OpenSSO 將建立此目錄。之後，您應對該目錄設定適當的權限 (例如，0700)。

為 DB (資料庫) 記錄 (如 Oracle 或 MySQL) 配置記錄位置時，記錄位置的某些部分區分大小寫。例如，如果您是記錄至 Oracle 資料庫，則記錄位置應為 (請注意大小寫需相符)：

`jdbc:oracle:thin:@machine.domain:port:DBName`

要配置 DB 記錄，將 JDBC 驅動程式檔案增加 Web 容器的 JVM 類別路徑。您必須手動將 JDBC 驅動程式檔案增加 `amadmin` 程序檔的類別路徑，否則 `amadmin` 記錄將無法載入 JDBC 驅動程式。

對記錄屬性的變更通常於儲存後即生效。這不需要您重新啟動伺服器。若您變更至安全記錄，則您應重新啟動伺服器。

##### 記錄狀態

指定記錄開啟 (使用中) 或關閉 (非使用中)。安裝期間，此值會設定為使用中。

##### 日誌記錄解析主機名稱

如果設定為 false，將不會執行主機查找以寫入 LogRecord 的 HostName 欄位。

##### 記錄類型

可讓您指定平面檔記錄的檔案或資料庫記錄的 DB。

若資料庫使用者名稱或資料庫使用者密碼無效，將嚴重地影響 OpenSSO 處理過程。如果 OpenSSO 或主控台變得不穩定，您可以將 [記錄狀態] 屬性設定為 [非使用中]。

設定特性後，重新啟動伺服器。之後，您可登入主控台並重新啟動記錄屬性。然後，將 [記錄狀態] 特性變更為使用中，並重新啟動伺服器。

##### 資料庫使用者名稱

在記錄類型屬性設定為 DB 時，此屬性接受將連接至資料庫的使用者名稱。

##### 資料庫使用者密碼

記錄類型屬性設定為 DB 時，此屬性接受資料庫使用者密碼。

##### 資料庫使用者密碼 (確認)

確認資料庫密碼。

##### 資料庫驅動程式名稱

此屬性可讓您指定用於記錄實作類別的驅動程式。

##### 可配置的記錄欄位

代表將記錄的欄位清單。依預設，會記錄所有欄位。這些欄位包括：

- CONTEXTID

- DOMAIN

- HOSTNAME

- IPADDRESS

- LOGGED BY

- LOGLEVEL

- LOGINID

- MESSAGEID

- MODULENAME

您最少需要記錄 [CONTEXTID]、[DOMAIN]、[HOSTNAME]、[LOGINID] 與 [MESSAGEID]。

##### 記錄確認頻率

此屬性設定伺服器為偵測竄改而應該驗證記錄的頻率 (以秒為單位)。預設時間為 3600 秒。此參數僅適用於安全記錄。

##### 記錄簽名時間

此參數設定要對記錄進行簽名的頻率 (以秒為單位)。預設時間為 900 秒。此參數僅適用於安全記錄。

##### 安全記錄

此屬性會啟用或停用安全記錄。依預設，安全記錄是關閉的。啟用安全記錄後，可以偵測對安全記錄進行的未授權變更或竄改。

備註 – 安全記錄僅可用於平面檔案。此選項不適用於資料庫 (DB) 的記錄。

##### 安全記錄簽署演算法

此屬性會定義 RSA 與 DSA (Digital Signature Algorithm, 數位簽名演算法)，這兩種演算法具有用於簽署的私密金鑰，以及用於驗證的公開金鑰。您可從下列演算法中選擇：

- MD2 w/RSA

- MD5 w/RSA

- SHA1 w/DSA

- SHA1 w/RSA

MD2、MD5 與 RSA 是單向雜湊。例如，如果您選擇簽署演算法 MD2 w/RSA，則安全記錄功能會使用 MD2 產生一組訊息，並使用 RSA 私密金鑰對值進行加密。此加密的值是原始日誌記錄的簽名，且會附加於最近簽名的最新記錄。在驗證方面，它會使用 RSA 公開金鑰來解密簽名，並比較已解密的值與日誌記錄群組。接著安全記錄功能會偵測任何對日誌記錄的修改。

##### 記錄憑證存放區位置

啟用安全記錄時，記錄服務會在此屬性所指定的位置搜尋其憑證。實際的目錄路徑會在執行階段決定。此值可以設定為明確的路徑，但是 OpenSSO 實例應該能存取基底路徑。

##### 最大記錄數

此屬性設定 Java LogReader 介面傳回的最大記錄數，無論有多少記錄與讀取查詢相符。依預設，設定為 500。記錄 API 的呼叫者可以透過 LogQuery 類別置換此屬性。

##### 各歸檔檔案的檔案數

此屬性僅適用於安全記錄。它指定對於後續的安全記錄，何時需要歸檔記錄檔與金鑰庫、何時重新產生安全金鑰庫。預設為每個記錄程式有五個檔案。

##### 緩衝區大小

此屬性指定在記錄服務嘗試將其寫入記錄儲存庫前，記錄檔記錄在記憶體中緩衝的最大數目。預設為一條記錄。

##### DB 失敗記憶體緩衝區大小

此屬性定義當資料庫 (DB) 登入失敗時，記憶體中保存的記錄檔記錄最大數目。只有當 DB 登入指定後，才能使用這個屬性。當 OpenSSO 登入服務遺失與 DB 的連線時將會緩衝，最多可緩衝指定記錄的數目。此屬性的預設值為緩衝區大小屬性所定義之數值的兩倍。

##### 緩衝區時間

此屬性定義在傳送至記錄服務進行記錄前，記錄檔記錄要在記憶體中緩衝的時間。若 [啟用時間] 緩衝為開啟狀態，則此屬性適用。預設值為 3600 秒。

##### 時間緩衝

選取此屬性，使之處於開啟狀態時，OpenSSO 將設定記錄檔記錄要在記憶體中緩衝的時間限制。該時間量會在緩衝區時間屬性中設定。

##### 記錄層級

透過選取其中一個選項來使用此屬性配置特定記錄檔中所包含資訊的詳細程度。OpenSSO 服務會在 INFO 層級記錄。SAML 和 Identity Federation 服務記錄詳細程度會更高，可以為 FINE、FINER、FINEST 記錄層級。此外，OFF 層級可用於關閉記錄，ALL 層級可用於啟用記錄所有訊息。