定义三个terminal_logger:
$$ terminal_logger1.erl
-module(terminal_logger1).
-behaviour(gen_event).
-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2]).
init(_Args) ->
{ok, []}.
handle_event(ErrorMsg, State) ->
io:format("*** Error1 *** ~p~n", [ErrorMsg]),
{ok, State}.
handle_call(_Request, _State) ->
{ok, [], []}.
handle_info(_Info, _State) ->
{ok, []}.
code_change(_OlvVsn, _State, _Extra) ->
ok.
terminate(_Args, _State) ->
ok.
$$ terminal_logger2.erl
-module(terminal_logger2).
-behaviour(gen_event).
-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2]).
init(_Args) ->
{ok, []}.
handle_event(ErrorMsg, State) ->
io:format("*** Error2 *** ~p~n", [ErrorMsg]),
{ok, State}.
handle_call(_Request, _State) ->
{ok, [], []}.
handle_info(_Info, _State) ->
{ok, []}.
code_change(_OlvVsn, _State, _Extra) ->
ok.
terminate(_Args, _State) ->
ok.
$$ terminal_logger3.erl
-module(terminal_logger3).
-behaviour(gen_event).
-export([init/1, handle_event/2, handle_call/2, handle_info/2, code_change/3, terminate/2]).
init(_Args) ->
{ok, []}.
handle_event(ErrorMsg, State) ->
io:format("*** Error3 *** ~p~n", [ErrorMsg]),
{ok, State}.
handle_call(_Request, _State) ->
{ok, [], []}.
handle_info(_Info, _State) ->
{ok, []}.
code_change(_OlvVsn, _State, _Extra) ->
ok.
terminate(_Args, _State) ->
ok.
编译:
Eshell> c(terminal_logger1).
Eshell> c(terminal_logger2).
Eshell> c(terminal_logger3).
运行:
D:\erl\code>erl
Eshell V5.6.3 (abort with ^G)
1> gen_event:start_link({local, error_man}).
{ok,<0.31.0>}
2> gen_event:add_handler(error_man, terminal_logger1, []).
ok
3> gen_event:add_handler(error_man, terminal_logger2, []).
ok
4> gen_event:add_handler(error_man, terminal_logger3, []).
ok
5> gen_event:which_handlers(error_man).
[terminal_logger3,terminal_logger2,terminal_logger1]
6> gen_event:notify(error_man, "Hideto").
*** Error3 *** "Hideto"
ok
*** Error2 *** "Hideto"
7> *** Error1 *** "Hideto"
7>
分享到:
相关推荐
:magnifying_glass_tilted_left:它能做什么 :thinking_face: Logger-app可以将事件记录到日志文件中。 与gRPC服务器通信的合同由event.proto文件定义。 event.proto是Google协议缓冲区,它为gRPC框架奠定了通信介质...
欢迎使用Proxy_SQL_Logger :waving_hand: PostgreSQL代理服务器,用于记录用户SQL查询 :house:安装make && ./proxy_sql_logger --user_side localhost:8080 --server_side localhost:5432 --log_file logs.txt作者 :...
该包装器还为Logger提供了OTP错误翻译Logger ,当:gen_state_machine应用程序启动时,该翻译Logger会自动添加。 (可选)如果不希望将翻译Logger添加到Logger ,可以将:gen_state_machine添加到:included_...
例子 1 > { ok , _Pid } = gen_event : start ({ local , yourlogger }),2 > ok = gen_event : add_handler ( yourlogger , fluent_event , myapp ),ep18 3 > ok = gen_event : notify ( yourlogger , { access , {...
安装pip install simple_json_logger 测验python -m unittest discover 用法你好,世界 from simple_json_logger import JsonLoggerdef foo (): logger = JsonLogger () logger . info ( "Hello world!" )foo ()>> >...
HOLUX_ezTour_Logger_installer20090921_v1.03
env_logger 实现可以通过环境变量配置的记录器。 用法 在图书馆 env_logger在可执行文件(二进制项目)中使用时有意义。 图书馆应改用箱。 在可执行文件中 它必须与log一起添加到项目依赖项中: [ dependencies ] ...
代码,在 Nanode / Arduino 上运行并与 rfm_ecomanager_logger 对话。 密切关注日志记录过程(如 rfm_ecomanager_logger),并在检测到问题时发送电子邮件。 从功率数据文本文件创建简单的统计数据。 主要用于检查...
frida_ssl_loggerssl_logger based on fridafor from修改内容优化了frida的JS脚本,修复了在新版frida上的语法错误;调整JS脚本,使其适配iOS和macOS,同时也兼容了Android;增加了更多的选项,使其能在多种情况下...
simple_logger 一个记录器,它以可读的输出格式打印所有消息。 输出格式基于使用的格式。用法use simple_logger :: SimpleLogger;fn main () { SimpleLogger :: new (). init (). unwrap (); log :: warn! ( "This ...
activity_logger.pl在后台运行并监控计算机何时处于活动或空闲状态,以及哪个程序在前台。 它将将此数据存储在日志文件中。 提供了几个脚本来帮助分析记录的数据。 此代码在下获得 安装 将activity_logger.pl脚本...
EctoLoggerJson 将ecto数据记录为JSON,但字段略有不同依存关系毒埃克托安装如果,则可以将软件包安装为: 添加ecto_logger_json到您的依赖项列表mix.exs : ```elixirdef deps do [{:ecto_logger_json, "~> 0.1.0"}...
:giraffe: Node.js的美丽记录器 console.log语句的最佳替代 :wrapped_gift: 支持:捐赠 该项目是免费的开放源代码,我尝试提供出色的免费支持。 为什么要捐款? 我在业余时间将这个项目工作了几个小时,并尝试使其...
tensorboard_logger 注意:考虑使用代替,它具有相同的目标,并且是pytorch的一部分。 在没有TensorFlow的情况下记录TensorBoard事件 是一个可视化工具(不是该项目,它是框架的一部分),可以轻松地检查训练进度,...
分层记录器 日志箱的简单包装,可在运行时添加任意信息... env_logger :: init (). unwrap (); meta_info! ( "1" ); { register_logger_info! ( "Test" ); meta_info! ( "2" ); register_logger_info! ( "Testing
flexi_logger 灵活易用的记录器,可将日志写入stderr和/或文件和/或其他输出流,并且在程序运行时可能会受到影响。 用法 将flexi_logger添加到项目的Cargo.toml的依赖项部分,使用 [ dependencies ] flexi_logger =...
logger_logstash_backend:Elixir Logger的Logstash后端
rw.logger=0 修改为: PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.usb.config=mass_storage,adb \ ro.adb.secure=0 \ ro.sys.mutedrm=true \ rw.logger=0 3、 R:\wyb\rtl8188eu_r16m_20161208\android\...
例子 : { " correlationId " : " X-Correlation-Id " , " forceCorrelationId " : false , " endpoints " : [ { " name " : " post_ok " , " uri " : " /post/ok " , " http_method " : " POST " , " ...
Express Wolox记录仪 ExpressJS记录器将打包为附加功能,例如用于唯一请求ID的中间件和自动记录请求开始和结束的中间件。 节点版本支持 下表列出了每个版本以及所需的最低版本: ...const { logger } = requi