• 例子

    例子

    将错误消息输出到终端的事件处理器的回调模块可以这样写:

    1. -module(terminal_logger).
    2. -behaviour(gen_event).
    3.  
    4. -export([init/1, handle_event/2, terminate/2]).
    5.  
    6. init(_Args) ->
    7. {ok, []}.
    8.  
    9. handle_event(ErrorMsg, State) ->
    10. io:format("***Error*** ~p~n", [ErrorMsg]),
    11. {ok, State}.
    12.  
    13. terminate(_Args, _State) ->
    14. ok.

    将错误消息写入到文件的事件处理器的回调模块可以是:

    1. -module(file_logger).
    2. -behaviour(gen_event).
    3.  
    4. -export([init/1, handle_event/2, terminate/2]).
    5.  
    6. init(File) ->
    7. {ok, Fd} = file:open(File, read),
    8. {ok, Fd}.
    9.  
    10. handle_event(ErrorMsg, Fd) ->
    11. io:format(Fd, "***Error*** ~p~n", [ErrorMsg]),
    12. {ok, Fd}.
    13.  
    14. terminate(_Args, Fd) ->
    15. file:close(Fd).

    这些代码将在下一节中解释。