- 例子
例子
将错误消息输出到终端的事件处理器的回调模块可以这样写:
- -module(terminal_logger).
- -behaviour(gen_event).
- -export([init/1, handle_event/2, terminate/2]).
- init(_Args) ->
- {ok, []}.
- handle_event(ErrorMsg, State) ->
- io:format("***Error*** ~p~n", [ErrorMsg]),
- {ok, State}.
- terminate(_Args, _State) ->
- ok.
将错误消息写入到文件的事件处理器的回调模块可以是:
- -module(file_logger).
- -behaviour(gen_event).
- -export([init/1, handle_event/2, terminate/2]).
- init(File) ->
- {ok, Fd} = file:open(File, read),
- {ok, Fd}.
- handle_event(ErrorMsg, Fd) ->
- io:format(Fd, "***Error*** ~p~n", [ErrorMsg]),
- {ok, Fd}.
- terminate(_Args, Fd) ->
- file:close(Fd).
这些代码将在下一节中解释。