defmodule Log.Reset do @moduledoc """ Resets configured log files. """ alias __MODULE__.LogPaths.Server alias __MODULE__.LogPaths @typedoc "Log levels" @type levels :: [Logger.level()] | :all | :none @doc """ Returns a map of configured log paths. ## Examples iex> alias Log.Reset iex> Reset.log_paths() # Listed alphabetically... %{ debug: ~c"./log/debug.log", error: ~c"./log/error.log", info: ~c"./log/info.log", warning: ~c"./log/warning.log" } """ @spec log_paths :: LogPaths.t() def log_paths, do: GenServer.call(Server, :log_paths) @doc """ Refreshes the map of configured log paths from the application environment. """ @spec refresh_log_paths :: LogPaths.t() def refresh_log_paths, do: GenServer.call(Server, :refresh) @doc """ Resets the configured log files of the given `levels`. ## Examples iex> alias Log.Reset iex> # No logs reset as log paths not configured... iex> Reset.reset_logs([:alert, :notice]) :ok """ @spec reset_logs(levels) :: :ok def reset_logs(levels) do GenServer.call(Server, {:reset_logs, levels}) end end