defmodule Chaperon.Session.Logging do
@moduledoc """
Chaperon.Session log helper macros.
"""
defmacro __using__(_opts) do
quote do
require Logger
require Chaperon.Session.Logging
import Chaperon.Session.Logging
end
end
defmacro log_info(session, message) do
quote do
require Logger
session = unquote(session)
Logger.info("#{Chaperon.Session.id_string(session)} #{session.name} | #{unquote(message)} ")
session
end
end
defmacro log_debug(session, message) do
quote do
require Logger
session = unquote(session)
Logger.debug(fn ->
"#{Chaperon.Session.id_string(session)} #{session.name} | #{unquote(message)} "
end)
session
end
end
defmacro log_error(session, message) do
quote do
require Logger
session = unquote(session)
Logger.error(
"#{Chaperon.Session.id_string(session)} #{session.name} | #{unquote(message)} "
)
session
end
end
defmacro log_error(session, message, reason) do
quote do
require Logger
session = unquote(session)
Logger.error(
"#{Chaperon.Session.id_string(session)} #{session.name} | #{unquote(message)} #{
inspect(unquote(reason))
}"
)
session
end
end
defmacro log_warn(session, message) do
quote do
require Logger
session = unquote(session)
Logger.warn("#{Chaperon.Session.id_string(session)} #{session.name} | #{unquote(message)} ")
session
end
end
end