Skip to content

Commit 64f7e38

Browse files
authored
Configure log level (#197)
* Fix logger in hls manager * Add test * Modify possible log levels * Changes after review
1 parent 465ae81 commit 64f7e38

File tree

6 files changed

+38
-6
lines changed

6 files changed

+38
-6
lines changed

config/dev.exs

-2
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,3 @@ config :phoenix, :stacktrace_depth, 20
2626

2727
# Initialize plugs at runtime for faster development compilation
2828
config :phoenix, :plug_init_mode, :runtime
29-
30-
config :logger, level: :info

config/prod.exs

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ import Config
44
# to something meaningful, Phoenix uses this information
55
# when generating URLs.
66

7-
# Do not print debug messages in production
8-
config :logger, level: :info
9-
107
config :fishjam,
118
ip: {127, 0, 0, 1},
129
port: 8080

config/runtime.exs

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ config :ex_dtls, impl: :nif
1313
structured_logging? = ConfigReader.read_boolean("FJ_STRUCTURED_LOGGING") || false
1414
config :logger, backends: [if(structured_logging?, do: LoggerJSON, else: :console)]
1515

16+
config :logger, level: ConfigReader.read_logger_level()
17+
1618
prod? = config_env() == :prod
1719

1820
ip = ConfigReader.read_ip("FJ_IP") || Application.fetch_env!(:fishjam, :ip)

lib/jellyfish/component/hls/manager.ex

+2-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ defmodule Fishjam.Component.HLS.Manager do
7575
end)
7676

7777
broadcast_notification(result, room_id)
78-
Logger.info("Finished uploading to s3 with result: #{result}, room: #{room_id}")
78+
79+
Logger.info("Finished uploading to s3 with result: #{inspect(result)}, room: #{room_id}")
7980
end
8081

8182
defp upload_file_to_s3(content, s3_path, opts, config, credentials) do

lib/jellyfish/config_reader.ex

+17
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,23 @@ defmodule Fishjam.ConfigReader do
250250
get_env(string, default)
251251
end
252252

253+
def read_logger_level() do
254+
log_level = get_env("FJ_LOG_LEVEL", "info")
255+
256+
log_levels_string = ["info", "debug", "warning", "error"]
257+
258+
if log_level in log_levels_string do
259+
String.to_existing_atom(log_level)
260+
else
261+
Logger.warning("""
262+
Provided unknown level of logs: #{log_level}. Valid values are #{Enum.join(log_levels_string, ", ")}.
263+
Set value to default - info.
264+
""")
265+
266+
:info
267+
end
268+
end
269+
253270
defp do_read_nodes_list_config(node_name_value, cookie, mode) do
254271
nodes_value = get_env("FJ_DIST_NODES", "")
255272

test/jellyfish/config_reader_test.exs

+17
Original file line numberDiff line numberDiff line change
@@ -352,4 +352,21 @@ defmodule Fishjam.ConfigReaderTest do
352352
assert_raise RuntimeError, fn -> ConfigReader.read_dist_config() end
353353
end
354354
end
355+
356+
test "read_logger_level/0" do
357+
with_env ["FJ_LOG_LEVEL"] do
358+
env_value_to_log_level = %{
359+
"info" => :info,
360+
"debug" => :debug,
361+
"warning" => :warning,
362+
"error" => :error,
363+
"other_env_value" => :info
364+
}
365+
366+
for {env_value, log_level} <- env_value_to_log_level do
367+
System.put_env("FJ_LOG_LEVEL", env_value)
368+
assert ConfigReader.read_logger_level() == log_level
369+
end
370+
end
371+
end
355372
end

0 commit comments

Comments
 (0)