Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150099
  • 博文数量: 92
  • 博客积分: 2035
  • 博客等级: 大尉
  • 技术积分: 874
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-10 09:03
文章分类

全部博文(92)

文章存档

2010年(38)

2009年(54)

我的朋友

分类:

2009-11-29 12:11:22

-module(event_handler).
-export([make/1, add_handler/2, event/2]).

make(Name) -> register(Name, spawn(fun() -> my_handler(fun no_op/1) end)).

add_handler(Name, Fun) -> Name ! {add, Fun}.

event(Name, X) -> Name ! {event, X}.

my_handler(Fun) ->
    receive
        {add, Fun1} ->
            my_handler(Fun1);
        {event, Any} ->
            (catch Fun(Any)),
            my_handler(Fun)
    end.

no_op(_) -> void.



-module(motor_controller).
-export([add_event_handler/0]).

add_event_handler() ->
    event_handler:add_handler(errors, fun controller/1).
   
controller(too_hot) ->
    io:format("Turn off the motor ~n");
controller(X)  ->
    io:format("~w ignored event: ~p~n", [?MODULE, X]).



erl -boot start_sasl

[{sasl}, [
          {sasl_error_logger, false},
          {errlog_type, error},
          {error_logger_mf_dir, "/home/joe/error_logs"},
          {error_logger_mf_maxbytes,10485760},
          {error_logger_mf_maxfiles, 10}
          ]].
         
         
日志分析 rb:grep(RegExp)


应用程序监视器 图像界面  shell中 appmon:start().

阅读(280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~