diff options
author | Haelwenn (lanodan) Monnier <contact@hacktivis.me> | 2023-12-24 10:45:29 +0100 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2024-06-12 15:18:47 -0400 |
commit | c389ea0f42bf01bbc463e9e237162aab3dabf7a7 (patch) | |
tree | 7127d233e7506d21da64f1921655858c496cf94c /lib | |
parent | ba6afdb44de43e4057e7c8972195402097d43dc6 (diff) | |
download | pleroma-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.ex | 31 | ||||
-rw-r--r-- | lib/pleroma/config_db.ex | 9 |
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 |