Skip to content

Commit ce213e1

Browse files
committed
Move rabbit_ct_hook to rabbit_common
1 parent 4829c38 commit ce213e1

File tree

5 files changed

+65
-38
lines changed

5 files changed

+65
-38
lines changed

deps/rabbit_common/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ endef
2727

2828
LOCAL_DEPS = compiler crypto public_key sasl ssl syntax_tools tools xmerl runtime_tools
2929
DEPS = thoas ranch recon credentials_obfuscation
30-
TEST_DEPS = rabbitmq_ct_helpers
3130

3231
# Variables and recipes in development.*.mk are meant to be used from
3332
# any Git clone. They are excluded from the files published to Hex.pm.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
-module(rabbit_ct_hook).
2+
3+
-export([init/2]).
4+
5+
-include_lib("common_test/include/ct.hrl").
6+
-include_lib("kernel/include/logger.hrl").
7+
8+
init(_, _) ->
9+
ct:log(
10+
?LOW_IMPORTANCE,
11+
"Configuring logger to send logs to common_test logs"),
12+
ok = logger:set_handler_config(cth_log_redirect, level, debug),
13+
14+
%% Let's use the same format as RabbitMQ itself.
15+
ok = logger:set_handler_config(
16+
cth_log_redirect, formatter,
17+
default_file_formatter(#{})),
18+
19+
%% We use an addition logger handler for messages tagged with a non-OTP
20+
%% domain because by default, `cth_log_redirect' drop them.
21+
{ok, LogCfg0} = logger:get_handler_config(cth_log_redirect),
22+
LogCfg = maps:remove(id, maps:remove(module, LogCfg0)),
23+
24+
case catch
25+
logger:add_handler(
26+
cth_log_redirect_any_domains, cth_log_redirect_any_domains,
27+
LogCfg) of
28+
ok -> ok;
29+
{error, {invalid_handler, _}} ->
30+
ok
31+
end,
32+
33+
ok = logger:remove_handler(default),
34+
35+
ct:log(
36+
?LOW_IMPORTANCE,
37+
"Logger configured to send logs to common_test logs; you should see "
38+
"a message below saying so"),
39+
?LOG_INFO("Logger message logged to common_test logs"),
40+
{ok, undefined}.
41+
42+
default_file_formatter(Context) ->
43+
default_formatter(Context#{output_supports_colors => false}).
44+
45+
46+
default_formatter(#{log_levels := #{json := true}} = Context) ->
47+
SingleLine = format_msgs_as_single_lines(Context),
48+
{rabbit_logger_json_fmt, #{single_line => SingleLine}};
49+
default_formatter(Context) ->
50+
Color = use_colored_logging(Context),
51+
SingleLine = format_msgs_as_single_lines(Context),
52+
{rabbit_logger_text_fmt, #{use_colors => Color,
53+
single_line => SingleLine}}.
54+
55+
format_msgs_as_single_lines(#{log_levels := #{single_line := true}}) ->
56+
true;
57+
format_msgs_as_single_lines(_) ->
58+
false.
59+
60+
use_colored_logging(#{log_levels := #{color := true},
61+
output_supports_colors := true}) ->
62+
true;
63+
use_colored_logging(_) ->
64+
false.

deps/rabbitmq_ct_helpers/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ XREF_IGNORE = [ \
1616

1717
dep_inet_tcp_proxy = git https://github.com/rabbitmq/inet_tcp_proxy master
1818

19+
CT_HOOKS = rabbit_ct_hook
1920
DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk
2021
DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk
2122

deps/rabbitmq_ct_helpers/src/rabbit_ct_helpers.erl

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
-module(rabbit_ct_helpers).
99

10-
-include_lib("kernel/include/logger.hrl").
1110
-include_lib("common_test/include/ct.hrl").
1211

1312
-deprecated({is_mixed_versions,1,"Use is_mixed_versions/0 instead"}).
@@ -28,7 +27,6 @@
2827
ensure_rabbitmq_plugins_cmd/1,
2928
ensure_rabbitmq_queues_cmd/1,
3029
ensure_rabbitmq_diagnostics_cmd/1,
31-
redirect_logger_to_ct_logs/1,
3230
init_skip_as_error_flag/1,
3331
start_long_running_testsuite_monitor/1,
3432
stop_long_running_testsuite_monitor/1,
@@ -153,34 +151,6 @@ run_steps(Config, [Step | Rest]) ->
153151
run_steps(Config, []) ->
154152
Config.
155153

156-
redirect_logger_to_ct_logs(Config) ->
157-
ct:log(
158-
?LOW_IMPORTANCE,
159-
"Configuring logger to send logs to common_test logs"),
160-
ok = logger:set_handler_config(cth_log_redirect, level, debug),
161-
162-
%% Let's use the same format as RabbitMQ itself.
163-
ok = logger:set_handler_config(
164-
cth_log_redirect, formatter,
165-
rabbit_prelaunch_early_logging:default_file_formatter(#{})),
166-
167-
%% We use an addition logger handler for messages tagged with a non-OTP
168-
%% domain because by default, `cth_log_redirect' drop them.
169-
{ok, LogCfg0} = logger:get_handler_config(cth_log_redirect),
170-
LogCfg = maps:remove(id, maps:remove(module, LogCfg0)),
171-
ok = logger:add_handler(
172-
cth_log_redirect_any_domains, cth_log_redirect_any_domains,
173-
LogCfg),
174-
175-
ok = logger:remove_handler(default),
176-
177-
ct:log(
178-
?LOW_IMPORTANCE,
179-
"Logger configured to send logs to common_test logs; you should see "
180-
"a message below saying so"),
181-
?LOG_INFO("Logger message logged to common_test logs"),
182-
Config.
183-
184154
init_skip_as_error_flag(Config) ->
185155
SkipAsError = case os:getenv("RABBITMQ_CT_SKIP_AS_ERROR") of
186156
false -> false;

deps/rabbitmq_ct_helpers/src/rabbit_ct_hook.erl

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)