删除事件处理器

  1. 4> gen_event:delete_handler(error_man, terminal_logger, []).
  2. ok

这函数给注册为 error_man 的事件管理器发送了一个消息,告诉它要删除处理器 terminal_logger 。事件管理器会调用回调函数 terminal_logger:terminate([]) ,其中参数[]是传给 delete_handler 的第三个参数。 terminate 应该和 init 相反,进行必要的清理工作。它的返回值会被忽略。

对于 terminal_logger ,无须任何清理:

  1. terminate(_Args, _State) ->
  2. ok.

对于 file_logger ,在 init 中打开的文件描述符需要被关闭:

  1. terminate(_Args, Fd) ->
  2. file:close(Fd).