檢視原始碼 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 模擬器是否為靜態安裝。具有靜態模擬器的節點無法動態切換到新的模擬器,因為可執行檔是靜態寫入記憶體的。如果未設定參數masters
和client_directory
,則忽略此參數。releases_dir = string()
- 指示releases
目錄的位置。發布處理程式將其所有檔案寫入此目錄。如果未設定此參數,則使用作業系統環境參數RELDIR
。預設情況下,此參數為$OTPROOT/releases
。
已棄用的錯誤記錄器事件處理程式和組態
在 Erlang/OTP 21.0 中,新增了一個新的記錄 API。舊的 error_logger
事件管理器以及在此管理器上執行的事件處理程式仍然可以工作,但預設情況下不會使用它們。
錯誤記錄器事件處理程式 sasl_report_tty_h
和 sasl_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_handler
、error_logger
、logger
、log_mf_h
、rb
、release_handler
、systools