檢視原始碼 SASL 應用程式

描述

SASL 應用程式提供以下服務

  • alarm_handler
  • release_handler
  • systools

注意

OTP 中的 SASL 應用程式與「簡單驗證和安全層」(Simple Authentication and Security Layer,RFC 4422) 無關。

組態

為 SASL 應用程式定義了以下組態參數。有關組態參數的更多資訊,請參閱 Kernel 中的 app(4)

所有組態參數都是可選的。

  • start_prg = string() - 指定在發布安裝期間重新啟動系統時要使用的程式。預設值為 $OTPROOT/bin/start

  • masters = [atom()] - 指定此節點用於讀取/寫入發布資訊的節點。如果未設定參數 client_directory,則忽略此參數。

  • client_directory = string() - 此參數指定主節點上的客戶端目錄。有關詳細資訊,請參閱OTP 設計原則中的發布處理。如果未設定參數 masters,則忽略此參數。

  • static_emulator = true | false - 指示 Erlang 模擬器是否為靜態安裝。具有靜態模擬器的節點無法動態切換到新的模擬器,因為可執行檔是靜態寫入記憶體的。如果未設定參數 mastersclient_directory,則忽略此參數。

  • releases_dir = string() - 指示 releases 目錄的位置。發布處理程式將其所有檔案寫入此目錄。如果未設定此參數,則使用作業系統環境參數 RELDIR。預設情況下,此參數為 $OTPROOT/releases

已棄用的錯誤記錄器事件處理程式和組態

在 Erlang/OTP 21.0 中,新增了一個新的記錄 API。舊的 error_logger 事件管理器以及在此管理器上執行的事件處理程式仍然可以工作,但預設情況下不會使用它們。

錯誤記錄器事件處理程式 sasl_report_tty_hsasl_report_file_h 之前用於列印所謂的 SASL 報告,即*監管者報告*、*崩潰報告*和*進度報告*。現在,這些報告也由 Kernel 應用程式啟動的預設記錄器處理程式列印。進度報告預設會被主要記錄層級停止,但可以透過將此層級設定為 info 來啟用,例如使用 Kernel 組態參數 logger_level

如果仍然需要舊的錯誤記錄器事件處理程式,則必須透過呼叫 error_logger:add_report_handler/1,2 來新增它們。

  • sasl_report_tty_h - 格式化並將*監管者報告*、*崩潰報告*和*進度報告*寫入 stdio。此錯誤記錄器事件處理程式使用 Kernel 應用程式中的 error_logger_format_depth 來限制在崩潰和監管者報告中列印的詳細程度。

  • sasl_report_file_h - 格式化並將*監管者報告*、*崩潰報告*和*進度報告*寫入單一檔案。此錯誤記錄器事件處理程式使用 Kernel 應用程式中的 error_logger_format_depth 來限制在崩潰和監管者報告中列印的詳細程度。

可以透過將 Kernel 應用程式環境變數 logger_sasl_compatible 設定為 true 來獲得類似的行為,但仍使用新的記錄器 API。這會新增標準記錄器處理程式的第二個執行個體,名為 sasl,它只列印 SASL 報告。然後,Kernel 記錄器處理程式不會列印任何 SASL 報告。

sasl 處理程式會根據以下 SASL 應用程式環境變數的值進行組態。

  • sasl_error_logger = Value - Value 是以下其中之一

    • tty - 在錯誤記錄器中安裝 sasl_report_tty_h。這是預設選項。

    • {file,FileName} - 在錯誤記錄器中安裝 sasl_report_file_h。所有報告都會寫入檔案 FileName,它是一個字串。該檔案以 write 模式開啟,編碼為 utf8

    • {file,FileName,Modes} - 與 {file,FileName} 相同,只是 Modes 允許您指定用於開啟給 file:open/2 呼叫的 FileName 的模式。預設情況下,該檔案以 write 模式開啟,編碼為 utf8。使用 [append] 可讓 FileName 在附加模式下開啟。也可以指定不同的編碼。FileName 是一個字串。

    • false - 不會安裝任何 SASL 錯誤記錄器處理程式。

  • errlog_type = error | progress | all - 將指定的 sasl_error_logger 執行的錯誤記錄限制為錯誤報告或進度報告,或兩者皆是。預設值為 all

  • utc_log = true | false - 如果設定為 true,則文字記錄輸出中的所有日期都將以世界協調時間顯示,並附加字串 UTC

錯誤記錄器事件處理程式 log_mf_h 仍然可以使用。此事件處理程式將傳送到錯誤記錄器的所有事件寫入磁碟。使用多個檔案和記錄輪換。出於效率原因,每個事件都以二進位形式寫入。有關此處理程式的更多資訊,請參閱STDLIB 參考手冊

若要啟用此事件處理程式,必須設定三個 SASL 組態參數

  • error_logger_mf_dir = string() | false - 指定 log_mf_h 在哪個目錄中儲存其檔案。如果未定義此參數或為 false,則不會安裝 log_mf_h 處理程式。

  • error_logger_mf_maxbytes = integer() - 指定 log_mf_h 寫入的每個個別檔案的最大大小。如果未定義此參數,則不會安裝 log_mf_h 處理程式。

  • error_logger_mf_maxfiles = 0<integer()<256 - 指定 log_mf_h 使用的檔案數。如果未定義此參數,則不會安裝 log_mf_h 處理程式。

如果需要記錄輪換,新的 logger_disk_log_h 可能是 log_mf_h 的替代方案。但是,這會以明文形式而非二進位形式寫入記錄事件。

另請參閱

alarm_handlererror_loggerloggerlog_mf_hrbrelease_handlersystools