File 3510-logger-Fix-logger_metadata-app-env-var.patch of Package erlang
From c391c13e932f8050995e63f8d2bdc5d83ab895c8 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Thu, 18 Nov 2021 10:16:37 +0100
Subject: [PATCH] logger: Fix logger_metadata app env var
---
lib/kernel/src/logger.erl | 16 ++++++++++++----
lib/kernel/test/logger_SUITE.erl | 2 +-
lib/kernel/test/logger_env_var_SUITE.erl | 10 +++++++++-
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/lib/kernel/src/logger.erl b/lib/kernel/src/logger.erl
index 9107bf0e61..31995cfa25 100644
--- a/lib/kernel/src/logger.erl
+++ b/lib/kernel/src/logger.erl
@@ -988,11 +988,19 @@ get_logger_level() ->
end.
get_primary_metadata() ->
- case application:get_env(kernel,logger_default_metadata,#{}) of
- Meta when is_map(Meta) ->
+ case application:get_env(kernel,logger_metadata) of
+ {ok, Meta} when is_map(Meta) ->
Meta;
- Meta ->
- throw({logger_metadata, Meta})
+ {ok, Meta} ->
+ throw({logger_metadata, Meta});
+ undefined ->
+ %% This case is here to keep bug compatability. Can be removed in OTP 25.
+ case application:get_env(kernel,logger_default_metadata,#{}) of
+ Meta when is_map(Meta) ->
+ Meta;
+ Meta ->
+ throw({logger_metadata, Meta})
+ end
end.
get_primary_filter_default(Env) ->
diff --git a/lib/kernel/test/logger_SUITE.erl b/lib/kernel/test/logger_SUITE.erl
index 5545759b5d..c3a4a0417a 100644
--- a/lib/kernel/test/logger_SUITE.erl
+++ b/lib/kernel/test/logger_SUITE.erl
@@ -1004,7 +1004,7 @@ app_config(Config) ->
ok.
-%% This test case is maintly to see code coverage. Note that
+%% This test case is mainly to see code coverage. Note that
%% logger_env_var_SUITE tests a lot of the same, and checks the
%% functionality more thoroughly, but since it all happens at node
%% start, it is not possible to see code coverage in that test.
diff --git a/lib/kernel/test/logger_env_var_SUITE.erl b/lib/kernel/test/logger_env_var_SUITE.erl
index 494059e9e3..e67d8551cd 100644
--- a/lib/kernel/test/logger_env_var_SUITE.erl
+++ b/lib/kernel/test/logger_env_var_SUITE.erl
@@ -60,7 +60,8 @@ groups() ->
logger_many_handlers_default_first,
logger_many_handlers_default_last,
logger_many_handlers_default_last_broken_filter,
- logger_proxy
+ logger_proxy,
+ logger_metadata
]},
{bad,[],[bad_error_logger,
bad_level,
@@ -81,6 +82,7 @@ all() ->
default(Config) ->
{ok,#{primary:=P,handlers:=Hs,module_levels:=ML},_Node} = setup(Config,[]),
notice = maps:get(level,P),
+ true = #{} == maps:get(metadata,P),
#{module:=logger_std_h} = StdC = find(?STANDARD_HANDLER,Hs),
all = maps:get(level,StdC),
StdFilters = maps:get(filters,StdC),
@@ -555,6 +557,12 @@ logger_proxy(Config) ->
ok.
+logger_metadata(Config) ->
+ {ok,#{ primary := #{ metadata := #{ test := test } } }, _}
+ = setup(Config, [{logger_metadata,#{ test => test }}]),
+
+ ok.
+
sasl_compatible_false(Config) ->
Log = file(Config,?FUNCTION_NAME),
{ok,_,Node} = setup(Config,
--
2.31.1