From 6411225b6a5e6104e4daa45365e37f4a811a1ea2 Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Fri, 15 May 2020 12:12:05 +0200 Subject: [PATCH 1/3] Add log backend proxy for n2o to logger --- apps/roster/src/roster_n2o_log_backend.erl | 18 ++++++++++++++++++ sys.config | 1 + 2 files changed, 19 insertions(+) create mode 100644 apps/roster/src/roster_n2o_log_backend.erl diff --git a/apps/roster/src/roster_n2o_log_backend.erl b/apps/roster/src/roster_n2o_log_backend.erl new file mode 100644 index 000000000..2d353d12a --- /dev/null +++ b/apps/roster/src/roster_n2o_log_backend.erl @@ -0,0 +1,18 @@ +%%%------------------------------------------------------------------- +%%% @doc Logging backend for n2o interfacing with logger. +%%% +%%% @end +%%%------------------------------------------------------------------- + +-module(roster_n2o_log_backend). + +-export([info/3, warning/3, error/3]). + +info(Module, FormatString, Args) -> + logger:info(FormatString, Args, #{mfa => {Module, 'undefined', 0}}). + +warning(Module, FormatString, Args) -> + logger:warning(FormatString, Args, #{mfa => {Module, 'undefined', 0}}). + +error(Module, FormatString, Args) -> + logger:error(FormatString, Args, #{mfa => {Module, 'undefined', 0}}). diff --git a/sys.config b/sys.config index a50aeb27c..3b8f63fb9 100644 --- a/sys.config +++ b/sys.config @@ -115,6 +115,7 @@ {protocols,[n2o_nitro,n2o_ftp,roster_proto]}, {log_modules,[roster, n2o_vnode]}, {log_level,roster}, + {logger, roster_n2o_log_backend}, {vnode, {roster, get_vnode}}, {validate, {roster, validate}} ]}, -- GitLab From 8c09af63fe900d90000715e8a327c065f4499d68 Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Fri, 15 May 2020 12:20:48 +0200 Subject: [PATCH 2/3] Make emqttc clients log with error_logger which will be captured by logger --- apps/roster/src/protocol/micro_auth.erl | 4 +++- apps/roster/src/protocol/roster_auth.erl | 2 +- apps/roster/src/protocol/roster_bpe.erl | 4 +++- apps/roster/src/protocol/roster_message.erl | 4 +++- apps/roster/src/rest/helpers/rest_main_helper.erl | 3 ++- apps/roster/src/roster_client.erl | 9 ++++++--- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/apps/roster/src/protocol/micro_auth.erl b/apps/roster/src/protocol/micro_auth.erl index e97661e8f..aeca814a4 100644 --- a/apps/roster/src/protocol/micro_auth.erl +++ b/apps/roster/src/protocol/micro_auth.erl @@ -118,7 +118,9 @@ info(#'Auth'{phone = Phone} = Auth, Req, #cx{params = ClientId} = State) -> %% micro_auth handlers proc(init, #handler{name = micro_auth} = Async) -> - {ok, C} = emqttc:start_link([{client_id, <<"micro_auth">>}, {logger, {console, error}}, {reconnect, 5}]), + {ok, C} = emqttc:start_link([{client_id, <<"micro_auth">>}, + {logger, {error_logger, error}}, + {reconnect, 5}]), ?LOG_INFO("ASYNC AUTH PROC started", []), {ok, Async#handler{state = C, seq = 0}}; diff --git a/apps/roster/src/protocol/roster_auth.erl b/apps/roster/src/protocol/roster_auth.erl index 0c22755a7..da4a8dede 100644 --- a/apps/roster/src/protocol/roster_auth.erl +++ b/apps/roster/src/protocol/roster_auth.erl @@ -592,7 +592,7 @@ info(#'Auth'{phone = Phone} = Auth, proc(init, #handler{name = roster_auth} = Async) -> {ok, C} = emqttc:start_link([ {client_id, <<"roster_auth">>}, - {logger, {console, error}}, + {logger, {error_logger, error}}, {reconnect, 5} ]), catch locus:start_loader(city, application:get_env(locus, url, ?GEO_URL)), diff --git a/apps/roster/src/protocol/roster_bpe.erl b/apps/roster/src/protocol/roster_bpe.erl index 96b89d464..31a8e7a9e 100644 --- a/apps/roster/src/protocol/roster_bpe.erl +++ b/apps/roster/src/protocol/roster_bpe.erl @@ -196,7 +196,9 @@ info(#'Job'{feed_id = Feed} = RequestData, R, S) -> info(M, R, S) -> ?LOG_INFO("UNKNOWN:~w", [M]), {unknown, M, R, S}. proc(init, #handler{name = roster_bpe} = Async) -> - {ok, C} = emqttc:start_link([{client_id, <<"sys_bpe">>}, {logger, {console, error}}, {reconnect, 5}]), + {ok, C} = emqttc:start_link([{client_id, <<"sys_bpe">>}, + {logger, {error_logger, error}}, + {reconnect, 5}]), Table = process, Proc = case kvs:get(feed, Table) of {ok, #feed{top = Top} =_Feed} -> diff --git a/apps/roster/src/protocol/roster_message.erl b/apps/roster/src/protocol/roster_message.erl index 0469b1a96..d3b289946 100644 --- a/apps/roster/src/protocol/roster_message.erl +++ b/apps/roster/src/protocol/roster_message.erl @@ -448,7 +448,9 @@ info(#'Message'{from = From, to = To} = ReqData, Req, State) -> proc(init, #handler{name = roster_message} = Async) -> ?LOG_INFO("ASYNC:~p", [?MODULE]), - {ok, C} = emqttc:start_link([{client_id, <<"roster_message">>}, {logger, {console, error}}, {reconnect, 5}]), + {ok, C} = emqttc:start_link([{client_id, <<"roster_message">>}, + {logger, {error_logger, error}}, + {reconnect, 5}]), {ok, Async#handler{state = C, seq = 0}}; proc({send_push, From, To, #'Message'{type = TypeList} = Msg, Action}, #handler{} = H) -> diff --git a/apps/roster/src/rest/helpers/rest_main_helper.erl b/apps/roster/src/rest/helpers/rest_main_helper.erl index 33bc6dea6..2b46f3929 100644 --- a/apps/roster/src/rest/helpers/rest_main_helper.erl +++ b/apps/roster/src/rest/helpers/rest_main_helper.erl @@ -26,7 +26,8 @@ rest_pid() -> case whereis(?REST_HELPER_NAME) of undefined -> {ok, C} = emqttc:start_link([{client_id, ?SYS_REST_CLIENT}, - {logger, {console, error}}, {reconnect, 5}]), + {logger, {error_logger, error}}, + {reconnect, 5}]), register(?REST_HELPER_NAME, C), unlink(C), C; diff --git a/apps/roster/src/roster_client.erl b/apps/roster/src/roster_client.erl index ae94ab202..aec8cd2b4 100644 --- a/apps/roster/src/roster_client.erl +++ b/apps/roster/src/roster_client.erl @@ -74,7 +74,9 @@ proc(init, #handler{name = ?SYS_REST_CLIENT, state = #state{receive_pid = Self} Self ! init, {ok, Async#handler{state = State#state{mqttc = C, client_id = ?SYS_REST_CLIENT}, seq = 0}}; proc(init, #handler{name = ?SYS_BRIDGE_TEST_CLIENT, state = #state{receive_pid = Self} = State} = Async) -> - {ok, C} = emqttc:start_link([{client_id, ?SYS_BRIDGE_TEST_CLIENT}, {logger, {console, error}}, {reconnect, 5}]), + {ok, C} = emqttc:start_link([{client_id, ?SYS_BRIDGE_TEST_CLIENT}, + {logger, {error_logger, error}}, + {reconnect, 5}]), ?LOG_INFO("MICRO BRIDGE SIMULATOR PROC started", []), register(sys_bridge, C), Self ! init, @@ -82,8 +84,9 @@ proc(init, #handler{name = ?SYS_BRIDGE_TEST_CLIENT, state = #state{receive_pid = proc(init, #handler{name = ClientId, state = #state{mqtt_opts = Opts, receive_pid = Self, username = Username} = State} = Async) -> ?LOG_INFO("ClientInit:~p\r", [ClientId]), {ok, C} = emqttc:start_link([{client_id, ClientId}, - {clean_sess, false}, {logger, {console, error}}, - {username, Username}, {reconnect, 5}] ++ Opts), + {clean_sess, false}, + {logger, {error_logger, error}}, + {username, Username}, {reconnect, 5}] ++ Opts), Self ! init, {ok, Async#handler{state = State#state{mqttc = C, client_id = ClientId}, seq = 0}}; -- GitLab From 0afb391cfc2726334d3372b2f58b49ac69f9b6f2 Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Fri, 15 May 2020 12:43:22 +0200 Subject: [PATCH 3/3] Make sure esockd application uses error_logger as logger Which will be forwarded to logger --- sys.config | 1 + 1 file changed, 1 insertion(+) diff --git a/sys.config b/sys.config index 3b8f63fb9..b147321d4 100644 --- a/sys.config +++ b/sys.config @@ -210,6 +210,7 @@ {large_heap,67108864}, {busy_port,false}, {busy_dist_port,true}]}]}, + {esockd, [{logger, {error_logger, info}}]}, {kvs, [{dba,store_mnesia}, {schema, [kvs_user, kvs_acl, kvs_feed, kvs_subscription, roster, micro, emqttd_kvs, bpe_metainfo]} %% ,{generation, {roster_test, limit}} -- GitLab