Packages
file_only_logger
0.1.35
0.2.70
0.2.69
0.2.65
0.2.64
0.2.63
0.2.62
0.2.61
0.2.60
0.2.59
0.2.58
0.2.57
0.2.56
0.2.55
0.2.54
0.2.53
0.2.52
0.2.51
0.2.50
0.2.49
0.2.48
0.2.47
0.2.45
0.2.44
0.2.43
0.2.42
0.2.41
0.2.40
0.2.39
0.2.38
0.2.37
0.2.36
0.2.35
0.2.34
0.2.33
0.2.31
0.2.30
0.2.29
0.2.28
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.1.58
0.1.57
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.0
A simple logger that writes messages to log files only (not to the console).
Current section
Files
Jump to
Current section
Files
lib/file/only/logger/proxy.ex
defmodule File.Only.Logger.Proxy do
use PersistConfig
require Logger
@spec log(Logger.level(), String.t()) :: :ok
def log(level, message),
do: log(level, message, Logger.compare_levels(level, level()))
@spec fun(Macro.Env.t(), integer | :infinity) :: String.t()
def fun(%Macro.Env{} = env, limit)
when is_integer(limit) or limit == :infinity do
fun = fun(env)
if String.length(fun) > limit, do: "\n #{fun}", else: fun
end
## Private functions
@spec fun(Macro.Env.t()) :: String.t()
defp fun(%Macro.Env{function: {name, arity}, module: module}) do
if to_string(name) |> String.contains?(" "),
do: "#{inspect(module)}.'#{name}'/#{arity}",
else: "#{inspect(module)}.#{name}/#{arity}"
end
defp fun(%Macro.Env{function: nil}), do: "'not inside a function'"
@spec level :: Logger.level() | :all | :none
defp level, do: get_env(:level, :all)
@spec log(Logger.level(), String.t(), :lt | :eq | :gt) :: :ok
defp log(level, message, compare) when compare in [:gt, :eq] do
removed =
case Logger.remove_backend(:console, flush: true) do
:ok -> :ok
error -> log(error)
end
:ok = Logger.log(level, message)
if removed == :ok, do: Logger.add_backend(:console, flush: true)
:ok
end
defp log(_level, _message, _compare), do: :ok
@spec log(tuple) :: tuple
defp log({:error, term} = error) do
Logger.error("""
\nError calling 'Logger.remove_backend/2':
• Error:
#{inspect(term)}
""")
error
end
end