本篇通过对上一篇simple_cache系统的改造,通过gen_event行为模式,加入日志系统,还通过编写事件处理器来与日志流对接,进而自行调整日志的输出。
首先是上篇跳转,没看过上篇的可以去先看一下上篇,讲的是利用gen_server和sup监督模式实现的一个简单的缓存系统。
为simple_cache添加自定义事件
上篇介绍到,我们的simple_cache结构过于简单,还有很多能加的功能,比如文章结尾说道的日志功能,本篇我们就将用gen_event行为模式创建一个自定义的事件流,然后将其集成在simple_cache项目中,还要将其挂载在监督结构,并在各关键点插入用于投递事件的代码,但首先我们要设计一下事件流的API。
事件流API
我们需要新建一个sc_event负责让simple_cache的模块来调用,给所有希望订阅该事件流的用户使用。
sc_event.erl
%%%-------------------------------------------------------------------
%%% @author fengshangjiong
%%% @cop