查看源代码 SASL 应用

描述

SASL 应用提供以下服务

  • alarm_handler
  • release_handler
  • systools

注意

OTP 中的 SASL 应用与“简单身份验证和安全层”(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 目录所在的位置。发布处理程序将其所有文件写入此目录。如果未设置此参数,则使用 OS 环境变量参数 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。这将添加标准 Logger 处理程序的第二个实例,名为 sasl,它仅打印 SASL 报告。然后,Kernel 日志处理程序不会打印任何 SASL 报告。

sasl 处理程序根据以下 SASL 应用环境变量的值进行配置。

  • sasl_error_logger = Value - Value 是以下之一

    • tty - 在错误日志中安装 sasl_report_tty_h。这是默认选项。

    • {file,FileName} - 在错误日志中安装 sasl_report_file_h。所有报告都将发送到文件 FileName,这是一个字符串。该文件以 utf8 编码的 write 模式打开。

    • {file,FileName,Modes} - 与 {file,FileName} 相同,不同之处在于 Modes 允许您指定用于打开 file:open/2 调用给出的 FileName 的模式。默认情况下,该文件以 utf8 编码的 write 模式打开。使用 [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