今天在写simple_cache集成日志系统的时候发现漏写了gen_event行为模式,这里补一下,也说明gen_event在日志信息里会用到,他也是OTP四大行为模式之一,是事件管理器。
gen_event概念
在OTP中,事件管理器是一个事件可以发送到命名对象,一个事件可以是一个错误,一个警告,或者一些要写入日志的信息。
在事件管理器中,有0个、一个或者多个事件处理器被安装,当事件管理器被一个事件通知时,这个事件将被安装在事件管理器中的事件处理器处理,
事件管理器用一个进程实现,事件处理器用回调模块实现。事件管理器本质上维护一个{Module, State}列表,每一个Module为一个事件处理器,而State为事件处理器的内部状态。
gen_event主要模块
启动管理器
%% -----------------------------------------------------------------
%% Starts a generic event handler.
%% start()
%% start(MgrName | Options)
%% start(MgrName, Options)