Packages

Absinthe macros for `blunt` commands and queries

Current section

Files

Jump to
blunt_absinthe lib blunt absinthe log.ex
Raw

lib/blunt/absinthe/log.ex

defmodule Blunt.Absinthe.Log do
@moduledoc false
@spec debug(any) :: any()
@spec warning(any) :: any()
@spec error(any) :: any()
@spec info(any) :: any()
def debug(entry), do: put({:debug, entry})
def warning(entry), do: put({:warning, entry})
def error(entry), do: put({:error, entry})
def info(entry), do: put({:info, entry})
defp put({level, entry}) do
logs = Process.get(:blunt_logs, [])
logs = [%{level: level, date: DateTime.utc_now(), message: entry} | logs]
Process.put(:blunt_logs, logs)
entry
end
require Logger
@spec dump :: :ok
def dump do
:blunt_logs
|> Process.get([])
|> Enum.sort_by(& &1.date)
|> Enum.each(fn %{level: level, message: message} ->
if System.get_env("CQRS_ABSINTHE_DEBUG") do
IO.inspect(message, label: "log")
end
Logger.log(level, message)
end)
Logger.flush()
:ok
end
end