Skip to content

Commit a7c74e2

Browse files
haulethJosé Valim
authored andcommitted
Remove calls to error_logger (#9469)
1 parent fe2f368 commit a7c74e2

File tree

4 files changed

+117
-25
lines changed

4 files changed

+117
-25
lines changed

lib/elixir/lib/dynamic_supervisor.ex

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,20 @@ defmodule DynamicSupervisor do
741741
end
742742

743743
def handle_info(msg, state) do
744-
:error_logger.error_msg('DynamicSupervisor received unexpected message: ~p~n', [msg])
744+
:logger.error(
745+
%{
746+
label: {DynamicSupervisor, :unexpected_msg},
747+
report: %{
748+
msg: msg
749+
}
750+
},
751+
%{
752+
domain: [:otp, :elixir],
753+
error_logger: %{tag: :error_msg},
754+
report_cb: &__MODULE__.format_report/1
755+
}
756+
)
757+
745758
{:noreply, state}
746759
end
747760

@@ -984,12 +997,22 @@ defmodule DynamicSupervisor do
984997
end
985998

986999
defp report_error(error, reason, pid, child, %{name: name, extra_arguments: extra}) do
987-
:error_logger.error_report(
988-
:supervisor_report,
989-
supervisor: name,
990-
errorContext: error,
991-
reason: reason,
992-
offender: extract_child(pid, child, extra)
1000+
:logger.error(
1001+
%{
1002+
label: {:supervisor, error},
1003+
report: [
1004+
{:supervisor, name},
1005+
{:errorContext, error},
1006+
{:reason, reason},
1007+
{:offender, extract_child(pid, child, extra)}
1008+
]
1009+
},
1010+
%{
1011+
domain: [:otp, :sasl],
1012+
report_cb: &:logger.format_otp_report/1,
1013+
logger_formatter: %{title: "SUPERVISOR REPORT"},
1014+
error_logger: %{tag: :error_report, type: :supervisor_report}
1015+
}
9931016
)
9941017
end
9951018

@@ -1020,4 +1043,12 @@ defmodule DynamicSupervisor do
10201043
defp call(supervisor, req) do
10211044
GenServer.call(supervisor, req, :infinity)
10221045
end
1046+
1047+
@doc false
1048+
def format_report(%{
1049+
label: {__MODULE__, :unexpected_msg},
1050+
report: %{msg: msg}
1051+
}) do
1052+
{'DynamicSupervisor received unexpected message: ~p~n', [msg]}
1053+
end
10231054
end

lib/elixir/lib/gen_server.ex

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -785,8 +785,22 @@ defmodule GenServer do
785785
{_, name} -> name
786786
end
787787

788-
pattern = '~p ~p received unexpected message in handle_info/2: ~p~n'
789-
:error_logger.error_msg(pattern, [__MODULE__, proc, msg])
788+
:logger.error(
789+
%{
790+
label: {GenServer, :no_handle_info},
791+
report: %{
792+
module: __MODULE__,
793+
message: msg,
794+
name: proc
795+
}
796+
},
797+
%{
798+
domain: [:otp, :elixir],
799+
error_logger: %{tag: :error_msg},
800+
report_cb: &GenServer.format_report/1
801+
}
802+
)
803+
790804
{:noreply, state}
791805
end
792806

@@ -1205,4 +1219,12 @@ defmodule GenServer do
12051219
def whereis({name, node} = server) when is_atom(name) and is_atom(node) do
12061220
server
12071221
end
1222+
1223+
@doc false
1224+
def format_report(%{
1225+
label: {GenServer, :no_handle_info},
1226+
report: %{module: mod, message: msg, name: proc}
1227+
}) do
1228+
{'~p ~p received unexpected message in handle_info/2: ~p~n', [mod, proc, msg]}
1229+
end
12081230
end

lib/elixir/lib/task/supervised.ex

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,51 @@ defmodule Task.Supervised do
9696
:erlang.raise(:exit, value, __STACKTRACE__)
9797

9898
kind, value ->
99-
log(owner, mfa, {log_value(kind, value), __STACKTRACE__})
99+
{fun, args} = get_running(mfa)
100+
101+
:logger.error(
102+
%{
103+
label: {Task.Supervisor, :terminating},
104+
report: %{
105+
name: get_from(owner),
106+
starter: self(),
107+
function: fun,
108+
args: args,
109+
reason: {log_value(kind, value), __STACKTRACE__}
110+
}
111+
},
112+
%{
113+
domain: [:otp, :elixir],
114+
error_logger: %{tag: :error_msg},
115+
report_cb: &__MODULE__.format_report/1
116+
}
117+
)
118+
100119
:erlang.raise(kind, value, __STACKTRACE__)
101120
end
102121
end
103122

104123
defp log_value(:throw, value), do: {:nocatch, value}
105124
defp log_value(_, value), do: value
106125

107-
defp log(owner, mfa, reason) do
108-
{fun, args} = get_running(mfa)
109-
126+
@doc false
127+
def format_report(%{
128+
label: {Task.Supervisor, :terminating},
129+
report: %{
130+
name: name,
131+
starter: starter,
132+
function: fun,
133+
args: args,
134+
reason: reason
135+
}
136+
}) do
110137
message =
111138
'** Task ~p terminating~n' ++
112139
'** Started from ~p~n' ++
113140
'** When function == ~p~n' ++
114141
'** arguments == ~p~n' ++ '** Reason for termination == ~n' ++ '** ~p~n'
115142

116-
:error_logger.format(message, [self(), get_from(owner), fun, args, get_reason(reason)])
143+
{message, [starter, name, fun, args, get_reason(reason)]}
117144
end
118145

119146
defp get_from({node, pid_or_name, _pid}) when node == node(), do: pid_or_name

lib/logger/lib/logger/translator.ex

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,34 @@ defmodule Logger.Translator do
7979
{:ok, ["Application ", Atom.to_string(app), " exited: " | Application.format_error(reason)]}
8080
end
8181

82-
def translate(_min_level, :error, :format, message) do
82+
def translate(
83+
_min_level,
84+
:error,
85+
:report,
86+
{{Task.Supervisor, :terminating},
87+
%{
88+
name: name,
89+
starter: starter,
90+
function: function,
91+
args: args,
92+
reason: reason
93+
}}
94+
) do
8395
opts = Application.get_env(:logger, :translator_inspect_opts)
8496

85-
case message do
86-
# TODO: Remove this once tasks are migrated to Logger
87-
{'** Task ' ++ _, [name, starter, function, args, reason]} ->
88-
{formatted, reason} = format_reason(reason)
89-
metadata = [crash_reason: reason] ++ registered_name(name)
97+
{formatted, reason} = format_reason(reason)
98+
metadata = [crash_reason: reason] ++ registered_name(name)
9099

91-
msg =
92-
["Task #{inspect(name)} started from #{inspect(starter)} terminating"] ++
93-
[formatted, "\nFunction: #{inspect(function, opts)}"] ++
94-
["\n Args: #{inspect(args, opts)}"]
100+
msg =
101+
["Task #{inspect(name)} started from #{inspect(starter)} terminating"] ++
102+
[formatted, "\nFunction: #{inspect(function, opts)}"] ++
103+
["\n Args: #{inspect(args, opts)}"]
95104

96-
{:ok, msg, metadata}
105+
{:ok, msg, metadata}
106+
end
97107

108+
def translate(_min_level, :error, :format, message) do
109+
case message do
98110
{'Error in process ' ++ _, [pid, node, {reason, stack}]} ->
99111
reason = Exception.normalize(:error, reason, stack)
100112

0 commit comments

Comments
 (0)