Skip to content

Commit a8cbed4

Browse files
committed
add minimum log level to send to client
1 parent f3796ab commit a8cbed4

File tree

2 files changed

+44
-6
lines changed

2 files changed

+44
-6
lines changed

lib/phoenix_live_reload/channel.ex

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,14 @@ defmodule Phoenix.LiveReloader.Channel do
6464
end
6565

6666
def handle_info({@logs, %{level: level, msg: msg, file: file, line: line}}, socket) do
67-
push(socket, "log", %{
68-
level: to_string(level),
69-
msg: msg,
70-
file: file,
71-
line: line
72-
})
67+
if is_log_min_log_level?(socket, level) do
68+
push(socket, "log", %{
69+
level: to_string(level),
70+
msg: msg,
71+
file: file,
72+
line: line
73+
})
74+
end
7375

7476
{:noreply, socket}
7577
end
@@ -122,6 +124,13 @@ defmodule Phoenix.LiveReloader.Channel do
122124
socket.endpoint.config(:live_reload)[:web_console_logger] == true
123125
end
124126

127+
defp is_log_min_log_level?(socket, log_level) do
128+
socket.endpoint.config(:live_reload)[:web_console_logger_min_log_level] |> case do
129+
nil -> true
130+
level -> Logger.compare_levels(log_level, level) != :lt
131+
end
132+
end
133+
125134
defp join_info do
126135
if url = System.get_env("PLUG_EDITOR") do
127136
%{editor_url: url}

test/channel_test.exs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,4 +152,33 @@ defmodule Phoenix.LiveReloader.ChannelTest do
152152

153153
assert info == %{editor_url: "vscode://file/__FILE__:__LINE__"}
154154
end
155+
156+
test "send valid logs with a minimum log level" do
157+
System.delete_env("PLUG_EDITOR")
158+
159+
update_live_reload_env(@endpoint, fn conf ->
160+
Keyword.merge(conf, web_console_logger: true, web_console_logger_min_log_level: :error)
161+
end)
162+
163+
{:ok, info, _socket} =
164+
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
165+
166+
assert info == %{}
167+
Logger.info("hello")
168+
169+
refute_receive _
170+
171+
update_live_reload_env(@endpoint, fn conf ->
172+
Keyword.drop(conf, [:web_console_logger_min_log_level])
173+
end)
174+
175+
{:ok, info, _socket} =
176+
LiveReloader.Socket |> socket() |> subscribe_and_join(Channel, "phoenix:live_reload", %{})
177+
178+
assert info == %{}
179+
180+
Logger.info("hello again")
181+
assert_receive %Phoenix.Socket.Message{event: "log", payload: %{msg: msg, level: "info"}}
182+
assert msg =~ "hello again"
183+
end
155184
end

0 commit comments

Comments
 (0)