- SASL:システムアーキテクチャサポートライブラリ(システムアーキテクチャのサポートライブラリ)。
- ログレベル:
- 重要または重大な:システムが致命的な障害を被ったり、クライアントがシステムにアクセスすることができなかったこと、それはすぐに人工的な措置をとるべきです。
- エラー:システムの運用・保守要員のシステムを教えて、いくつかの悪い状況が、深刻な何もあります。
- 警告:システムの運用・保守担当者に通知するために、潜在的な負の問題のいくつか登場しますが、一時的に無害。
- 情報:発表は運用・保守担当者に通知するために発生するイベントについてのメッセージを表します。
- デバッグ:大小の様々な情報を提供しています。
- 標準のログ機能:
error_logger:error_msg(Format, Data). error_logger:warning_msg(Format, Data). error_logger:info_msg(Format, Data). error_logger:error_report(Type, Report). error_logger:warning_report(Type, Report). error_logger:info_report(Type, Report).
- SASL:
application:start(sasl).
プロセスを開始するには産卵/ 1:OTP無関係なプロジェクトでは、多くの場合、効果的ではないSASLを始め、あなたはproc_libを使用することができます。
proc_libモジュールはErlangのSTDLIBアプリケーションの一部であるため、あなたがプロセスを開始するためにOTPの方法でそれを使用することができ、それは、OTPの必要な仕様に従った処理のために設定されます。 -
gen_event:
sc_event:-module(sc_event). -export([start_link/0, add_handler/2, delete_handler/2, lookup/1, create/2, replace/2, delete/1]). -define(SERVER, ?MODULE). start_link() -> gen_event:start_link({local, ?SERVER}). add_handler(Handler, Args) -> gen_event:add_handler(?SERVER, Handler, Args). delete_handler(Handler, Args) -> gen_event:delete(?SERVER, Handler, Args). lookup(Key) -> gen_event:notify(?SERVER, {lookup, Key}). create(Key, Value) -> gen_event:notify(?SERVER, {create, {Key, Value}}). replace(Key, Value) -> gen_event:notify(?SERVER, {replace, {Key, Value}}). delete(Key) -> gen_event:notify(?SERVER, {delete, Key}).
sc_event_logger:
-module(sc_event_logger). -behavior(gen_event). %% API -export([add_handler/0, delete_handler/0]). -export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2]). add_handler() -> sc_event:add_handler(?MODULE, []). delete_handler() -> sc_event:delete_handler(?MODULE, []). handle_event({create, {Key, Value}}, State) -> error_logger:info_msg("create{~w, ~w)~n", [Key, Value]), {ok, State}; handle_event({lookup, Key}, State) -> error_logger:info_msg("lookup{~w)~n", [Key]), {ok, State}; handle_event({delete, Key}, State) -> error_logger:info_msg("delete{~w)~n", [Key]), {ok, State}; handle_event({replace, {Key, Value}}, State) -> error_logger:info_msg("replace{~w, ~w)~n", [Key, Value]), {ok, State}. init(_) -> ok. handle_call(_, _) -> ok. handle_info(_, _) -> ok. code_change(_, _, _) -> ok. terminate(_, _) -> ok.
ログおよびイベント処理中のErlang / OTPの「アーラン/ OTP並行プログラミングの戦闘」の章VII
おすすめ
転載: blog.csdn.net/sanmao123456_/article/details/103447994
ランキング