summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2023-12-24 10:45:29 +0100
committerMark Felder <feld@feld.me>2024-06-12 15:18:47 -0400
commitc389ea0f42bf01bbc463e9e237162aab3dabf7a7 (patch)
tree7127d233e7506d21da64f1921655858c496cf94c /lib
parentba6afdb44de43e4057e7c8972195402097d43dc6 (diff)
downloadpleroma-c389ea0f42bf01bbc463e9e237162aab3dabf7a7.tar.gz
pleroma-c389ea0f42bf01bbc463e9e237162aab3dabf7a7.zip
Fix compatibility with Loggers in Elixir 1.15+
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/config/transfer_task.ex31
-rw-r--r--lib/pleroma/config_db.ex9
2 files changed, 28 insertions, 12 deletions
diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex
index 91885347f..1210e2c9d 100644
--- a/lib/pleroma/config/transfer_task.ex
+++ b/lib/pleroma/config/transfer_task.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Config.TransferTask do
@@ -13,6 +13,13 @@ defmodule Pleroma.Config.TransferTask do
@type env() :: :test | :benchmark | :dev | :prod
+ @add_backend if Version.match?(System.version(), "< 1.15.0-rc.0"),
+ do: &Logger.add_backend/1,
+ else: &LoggerBackends.add/1
+ @remove_backend if Version.match?(System.version(), "< 1.15.0-rc.0"),
+ do: &Logger.remove_backend/1,
+ else: &LoggerBackends.remove/1
+
defp reboot_time_keys,
do: [
{:pleroma, :hackney_pools},
@@ -105,26 +112,30 @@ defmodule Pleroma.Config.TransferTask do
# change logger configuration in runtime, without restart
defp configure({_, :backends, _, merged}) do
# removing current backends
- Enum.each(Application.get_env(:logger, :backends), &Logger.remove_backend/1)
+ Enum.each(Application.get_env(:logger, :backends), @remove_backend)
- Enum.each(merged, &Logger.add_backend/1)
+ Enum.each(merged, @add_backend)
:ok = update_env(:logger, :backends, merged)
end
- defp configure({_, key, _, merged}) when key in [:console, :ex_syslogger] do
+ defp configure({_, key, _, merged})
+ when key in [:console, Logger.Backends.Console, :ex_syslogger] do
+ backend =
+ case key do
+ :ex_syslogger -> {ExSyslogger, :ex_syslogger}
+ :console -> Logger.Backends.Console
+ Logger.Backends.Console -> Logger.Backends.Console
+ key -> key
+ end
+
merged =
- if key == :console do
+ if backend == Logger.Backends.Console do
put_in(merged[:format], merged[:format] <> "\n")
else
merged
end
- backend =
- if key == :ex_syslogger,
- do: {ExSyslogger, :ex_syslogger},
- else: key
-
Logger.configure_backend(backend, merged)
:ok = update_env(:logger, key, merged)
end
diff --git a/lib/pleroma/config_db.ex b/lib/pleroma/config_db.ex
index e28fcb124..b605d2843 100644
--- a/lib/pleroma/config_db.ex
+++ b/lib/pleroma/config_db.ex
@@ -385,7 +385,12 @@ defmodule Pleroma.ConfigDB do
@spec module_name?(String.t()) :: boolean()
def module_name?(string) do
- Regex.match?(~r/^(Pleroma|Phoenix|Tesla|Ueberauth|Swoosh)\./, string) or
- string in ["Oban", "Ueberauth", "ExSyslogger", "ConcurrentLimiter"]
+ if String.contains?(string, ".") do
+ [name | _] = String.split(string, ".", parts: 2)
+
+ name in ~w[Pleroma Phoenix Tesla Ueberauth Swoosh Logger LoggerBackends]
+ else
+ string in ~w[Oban Ueberauth ExSyslogger ConcurrentLimiter]
+ end
end
end