alarm_handler
报警[医]处理程序
模块
报警[医]处理程序
模块摘要
报警处理过程
描述
警报处理程序是gen_event
在系统中接收警报的事件管理器进程。此过程不打算成为一个完整的警报处理程序。它定义了一个可以发送警报的地方。在启动时,警报处理程序中安装了一个简单的事件处理程序,但鼓励用户编写和安装自己的处理程序。
简单事件处理程序将所有警报作为info报告发送给错误记录器,并将所有警报保存在一个列表中。此列表可以传递给用户定义的事件处理程序,该事件处理程序可以在以后安装.。如果产生多个警报,列表就会变大。这是一个很好的理由来安装一个更好的用户定义的处理程序。
提供函数来设置和清除警报。报警格式由用户定义。例如,可以定义用于SNMP的事件处理程序,以及警报管理信息库(MIB)。
警报处理程序是SASL应用程序的一部分。
为警报处理程序编写新的事件处理程序时,必须处理下列事件:
{set_alarm, {AlarmId, AlarmDescr}}
此事件由alarm_handler:set_alarm{AlarmId, AlarmDecsr}).
..
{clear_alarm, AlarmId}
此事件由alarm_handler:clear_alarm(AlarmId)
...
默认的简单处理程序被调用。alarm_handler
它可以通过呼叫交换gen_event:swap_handler/3
如gen_event:swap_handler(alarm_handler, {alarm_handler, swap}, {NewHandler, Args})
...NewHandler:init{Args, {alarm_handler, Alarms}})叫
做。有关详细信息,请参阅gen_event(3)在
STDLIB。
出口
clear_alarm(AlarmId) -> void()
类型
发送事件clear_alarm
所有事件处理程序。
当接收到该事件时,默认的简单处理程序将清除最近接收到的带有ID的警报AlarmId
。
get_alarms() -> [alarm()]
返回所有活动警报的列表。此函数只能在安装简单处理程序时使用。
set_alarm(alarm())
类型
发送事件set_alarm
所有事件处理程序。
当接收到此事件时,默认的简单处理程序会存储警报。AlarmId
识别警报并在警报被清除时使用。
另见
error_logger(3)
,,,gen_event(3)