Elixir 1.19: Warn on adding :console to Logger backends
Logger.Backend.Console still exists, but it is unused in our configuration. Instead logging to console is done from Logger's "default_handler".
This commit is contained in:
parent
3ebf4b1056
commit
39409a784d
2 changed files with 30 additions and 9 deletions
|
|
@ -117,27 +117,37 @@ defmodule Pleroma.Application do
|
||||||
def configure_logger do
|
def configure_logger do
|
||||||
Config.get([:logger, :backends], [])
|
Config.get([:logger, :backends], [])
|
||||||
|> Enum.each(fn backend ->
|
|> Enum.each(fn backend ->
|
||||||
backend = backend_to_logger(backend)
|
case backend_to_logger(backend) do
|
||||||
|
{:ok, logger} ->
|
||||||
|
add_logger(logger)
|
||||||
|
|
||||||
case LoggerBackends.add(backend) do
|
{:error, :console_backend} ->
|
||||||
{:ok, _} ->
|
Logger.warning(":console is no longer considered a backend and is enabled by default")
|
||||||
Logger.debug("Successfully added logger backend: #{inspect(backend)}")
|
|
||||||
|
|
||||||
{:error, reason} ->
|
|
||||||
Logger.error("Failed to add logger backend #{inspect(backend)}: #{inspect(reason)}")
|
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp add_logger(backend) do
|
||||||
|
case LoggerBackends.add(backend) do
|
||||||
|
{:ok, _} ->
|
||||||
|
Logger.debug("Successfully added logger backend: #{inspect(backend)}")
|
||||||
|
|
||||||
|
{:error, reason} ->
|
||||||
|
Logger.error("Failed to add logger backend #{inspect(backend)}: #{inspect(reason)}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
defp backend_to_logger(:console), do: {:error, :console_backend}
|
||||||
|
|
||||||
defp backend_to_logger({:ex_syslogger = backend, name}) do
|
defp backend_to_logger({:ex_syslogger = backend, name}) do
|
||||||
Logger.warning(
|
Logger.warning(
|
||||||
"Configuration {:#{backend}, :#{name}} is incorrect. Use {ExSyslogger, :#{name}} instead!"
|
"Configuration {:#{backend}, :#{name}} is incorrect. Use {ExSyslogger, :#{name}} instead!"
|
||||||
)
|
)
|
||||||
|
|
||||||
{ExSyslogger, name}
|
{:ok, {ExSyslogger, name}}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp backend_to_logger(backend), do: backend
|
defp backend_to_logger(backend), do: {:ok, backend}
|
||||||
|
|
||||||
def load_custom_modules do
|
def load_custom_modules do
|
||||||
dir = Config.get([:modules, :runtime_dir])
|
dir = Config.get([:modules, :runtime_dir])
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,15 @@ defmodule Pleroma.ApplicationTest do
|
||||||
assert log =~ "Successfully added logger backend: {ExSyslogger, :ex_syslogger}"
|
assert log =~ "Successfully added logger backend: {ExSyslogger, :ex_syslogger}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "config :pleroma, :logger, :backends: [:console]" do
|
||||||
|
setup do
|
||||||
|
clear_config([:logger, :backends], [:console])
|
||||||
|
end
|
||||||
|
|
||||||
|
test "emits a warning" do
|
||||||
|
assert capture_log(fn -> Pleroma.Application.configure_logger() end) =~
|
||||||
|
":console is no longer considered a backend and is enabled by default"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue