feat(docker): allow to configure loglevel at runtime through env variable

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2023-12-06 16:11:01 +01:00
parent 9907f887c9
commit 4855af8f87
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
2 changed files with 44 additions and 1 deletions

View file

@ -2,6 +2,26 @@
import Config import Config
loglevels = [
:emergency,
:alert,
:critical,
:error,
:warning,
:notice,
:info,
:debug
]
loglevel_env = System.get_env("MOBILIZON_LOGLEVEL", "error")
loglevel =
if loglevel_env in Enum.map(loglevels, &to_string/1) do
String.to_existing_atom(loglevel_env)
else
:error
end
listen_ip = System.get_env("MOBILIZON_INSTANCE_LISTEN_IP", "0.0.0.0") listen_ip = System.get_env("MOBILIZON_INSTANCE_LISTEN_IP", "0.0.0.0")
listen_ip = listen_ip =
@ -43,6 +63,8 @@ config :mobilizon, Mobilizon.Storage.Repo,
ssl: System.get_env("MOBILIZON_DATABASE_SSL", "false") == "true", ssl: System.get_env("MOBILIZON_DATABASE_SSL", "false") == "true",
pool_size: 10 pool_size: 10
config :logger, level: loglevel
config :mobilizon, Mobilizon.Web.Email.Mailer, config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Swoosh.Adapters.SMTP, adapter: Swoosh.Adapters.SMTP,
relay: System.get_env("MOBILIZON_SMTP_SERVER", "localhost"), relay: System.get_env("MOBILIZON_SMTP_SERVER", "localhost"),

View file

@ -16,7 +16,7 @@ defmodule Mix.Tasks.Mobilizon.Common do
if mix_task?(), do: Mix.Task.run("app.config") if mix_task?(), do: Mix.Task.run("app.config")
unless System.get_env("DEBUG") || @env == :test do unless System.get_env("DEBUG") || @env == :test do
Logger.configure(level: :error) Logger.configure(level: loglevel())
end end
Application.put_env(:phoenix, :serve_endpoints, false, persistent: true) Application.put_env(:phoenix, :serve_endpoints, false, persistent: true)
@ -144,4 +144,25 @@ defmodule Mix.Tasks.Mobilizon.Common do
defp format_name("Elixir.Mix.Tasks.Mobilizon." <> task_name) do defp format_name("Elixir.Mix.Tasks.Mobilizon." <> task_name) do
String.downcase(task_name) String.downcase(task_name)
end end
@loglevels [
:emergency,
:alert,
:critical,
:error,
:warning,
:notice,
:info,
:debug
]
defp loglevel do
loglevel_env = System.get_env("MOBILIZON_LOGLEVEL", "error")
if loglevel_env in Enum.map(@loglevels, &to_string/1) do
String.to_existing_atom(loglevel_env)
else
:error
end
end
end end