Current section
Files
Jump to
Current section
Files
lib/brod_console_logger.ex
defmodule BrodConsoleLogger do
@moduledoc false
@behaviour :gen_event
alias Logger.Backends.Console
defdelegate handle_call(a, b), to: Console
defdelegate handle_info(a, b), to: Console
defdelegate code_change(a, b, c), to: Console
defdelegate terminate(a, b), to: Console
@spec init(any) ::
{:error, :ignore}
| {:ok,
%{
colors: %{debug: any, enabled: any, error: any, info: any, warn: any},
device: any,
format:
[:date | :level | :levelpad | :message | :metadata | :node | :time | binary]
| {atom, atom},
level: any,
max_buffer: any,
metadata: :all | [any]
}}
@doc false
def init(_), do: Console.init(:console)
@doc false
@spec handle_event(any, any) :: {:ok, any}
def handle_event(
e = {:info, _, {Logger, m, _, _}},
state
) do
# Ignore
if match?(
[
83,
116,
97,
114,
116,
105,
110,
103,
32,
103,
114,
111,
117,
112,
95,
115,
117,
98,
115,
99,
114,
105,
98,
101,
114 | _
],
m
) or
match?("[supervisor: {#PID<" <> _, m) do
{:ok, state}
else
Console.handle_event(e, state)
end
end
def handle_event(e, state), do: Console.handle_event(e, state)
end