方法1、自写个函数,想gen_server发查看的消息。
方法2、利用系统现有的架构。sasl应用带了一个si的东西 全名是status inspector, 这个东西就是设计来帮用户解决这个问题的。
%%%------------------------------------------------------------------- %%% @author flybird <flybird@flybird> %%% @copyright (C) 2013, flybird %%% @doc %%% %%% @end %%% Created : 29 May 2013 by flybird <flybird@flybird> %%%------------------------------------------------------------------- -module(wy). -behaviour(gen_server). %% API -export([start_link/0]). -export([test/0, stop/0, check_msg/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -define(SERVER, ?MODULE). -record(state, {a, b}). test() -> gen_server:call(?SERVER, {test, "fuck you!"}). stop() -> gen_server:cast(?SERVER, stop). check_msg() -> gen_server:call(?SERVER, check_msg). start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). init([]) -> {ok, #state{a = hello, b = world}}. handle_call({test, _} = Request, _From, State) -> io:format("Got msg:~p~n", [Request]), {reply, ok, State}; handle_call(check_msg, _From, State)-> %方法1的实现 {reply, State, State}; handle_call(_Request, _From, State) -> Reply = ok, {reply, Reply, State}. handle_cast(stop, State) -> {stop, normal, State}; handle_cast(_Msg, State) -> {noreply, State}. handle_info(_Info, State) -> {noreply, State}. terminate(_Reason, _State) -> ok. code_change(_OldVsn, State, _Extra) -> {ok, State}.
http://blog.yufeng.info/archives/99