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

openSUSE Build Service is sponsored by