Packages

appsignal

2.17.1
2.17.4 2.17.3 2.17.2 2.17.1 2.17.0 2.16.0 2.15.11 2.15.10 2.15.9 2.15.8 2.15.7 2.15.6 2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.1 2.14.0 2.13.4 2.13.3 2.13.2 2.13.1 2.13.0 2.12.3 2.12.2 2.12.1 2.12.0 2.11.0 2.10.2 2.10.1 2.10.0 2.9.2 2.9.1 2.9.0 2.8.3 2.8.2 2.8.1 2.8.0 2.7.13 2.7.12 2.7.11 2.7.10 2.7.9 2.7.8 2.7.7 2.7.6 2.7.5 2.7.4 2.7.3 2.7.2 2.7.1 2.7.0 2.7.0-beta.1 2.6.1 2.6.0 2.5.3 2.5.2 2.5.1 2.5.0 2.4.3 2.4.2 2.4.1 2.4.0 2.3.1 2.3.0 2.2.19 2.2.18 2.2.17 2.2.16 2.2.15 2.2.14 2.2.13 2.2.12 retired 2.2.11 2.2.10 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 2.2.1 2.2.0 2.1.15 2.1.14 2.1.13 2.1.12 2.1.11 2.1.10 2.1.9 2.1.8 2.1.7 2.1.7-beta.1 2.1.6 2.1.5 2.1.4 2.1.3 2.1.2 2.1.1 2.1.0 2.0.8 2.0.7 2.0.6 2.0.6-beta.1 2.0.5 retired 2.0.4 retired 2.0.3 retired 2.0.2 retired 2.0.1 retired 2.0.0 retired 2.0.0-beta.11 2.0.0-beta.10 2.0.0-beta.9 2.0.0-beta.8 2.0.0-beta.7 2.0.0-beta.6 2.0.0-beta.5 2.0.0-beta.4 2.0.0-beta.3 2.0.0-beta.2 2.0.0-beta.1 2.0.0-alpha.7 2.0.0-alpha.6 2.0.0-alpha.5 2.0.0-alpha.4 2.0.0-alpha.3 2.0.0-alpha.2 2.0.0-alpha.1 1.13.5 1.13.4 1.13.3 1.13.2 1.13.1 1.13.0 1.13.0-beta.2 1.13.0-beta.1 1.12.1 1.12.0 1.12.0-beta.3 1.12.0-beta.2 1.12.0-beta.1 1.11.8 1.11.7 1.11.6 1.11.5 1.11.4 1.11.3 1.11.2 1.11.1 1.11.0 1.11.0-beta.1 1.10.13 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.4 1.9.3 1.9.2 1.9.1 1.9.1-beta.1 1.9.0 1.9.0-beta.1 1.9.0-alpha.1 1.8.2 1.8.1 1.8.1-beta.2 1.8.1-beta.1 1.8.0 1.7.2 1.7.1 1.7.0 1.7.0-beta.2 1.7.0-beta.1 1.7.0-alpha.4 1.7.0-alpha.3 1.7.0-alpha.2 1.7.0-alpha.1 1.6.7 1.6.6 1.6.6-beta.2 1.6.6-beta.1 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.6.0-beta.1 1.6.0-alpha.1 1.5.1 1.5.0 1.5.0-beta.2 1.5.0-beta.1 1.4.11-beta.1 1.4.10 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.4.0-alpha.1 1.3.6 1.3.6-beta.1 1.3.5 1.3.4 1.3.4-beta.1 1.3.3 1.3.2 1.3.1 1.3.0 1.3.0-beta.3 1.3.0-beta.2 1.3.0-beta.1 1.2.3 1.2.2 1.2.1 1.2.0 1.1.1 1.1.0 1.0.4 1.0.3 1.0.2 1.0.1 1.0.0 1.0.0-rc.1 0.13.0 0.12.3 0.12.2 0.12.1 0.12.0 0.11.6 0.11.5 0.11.4 0.11.3 0.11.2 0.11.1 0.11.0 0.10.0 0.9.2 0.9.1 0.9.0 0.8.0 0.7.1 0.7.0 0.6.2 0.6.1 0.6.0 0.5.0 0.4.0 0.3.0 0.2.0 0.1.0 0.0.9 0.0.8 0.0.7 0.0.6 0.0.5 0.0.4 0.0.3 0.0.2 0.0.1

Collects error and performance data from your Elixir applications and sends it to AppSignal

Current section

Files

Jump to
appsignal lib appsignal logger.ex
Raw

lib/appsignal/logger.ex

defmodule Appsignal.Logger do
@nif Application.compile_env(:appsignal, :appsignal_tracer_nif, Appsignal.Nif)
@type log_level ::
:debug | :info | :notice | :warning | :error | :critical | :alert | :emergency
@type format :: :json | :logfmt | :plaintext | :autodetect
@spec debug(String.t(), String.t(), %{} | format()) :: :ok
def debug(group, message, metadata_or_format \\ %{})
def debug(group, message, format) when is_atom(format) do
log(:debug, group, message, %{}, format)
end
def debug(group, message, metadata) do
log(:debug, group, message, metadata)
end
@spec info(String.t(), String.t(), %{} | format()) :: :ok
def info(group, message, metadata_or_format \\ %{})
def info(group, message, format) when is_atom(format) do
log(:info, group, message, %{}, format)
end
def info(group, message, metadata) do
log(:info, group, message, metadata)
end
@spec notice(String.t(), String.t(), %{} | format()) :: :ok
def notice(group, message, metadata_or_format \\ %{})
def notice(group, message, format) when is_atom(format) do
log(:notice, group, message, %{}, format)
end
def notice(group, message, metadata) do
log(:notice, group, message, metadata)
end
@spec warning(String.t(), String.t(), %{} | format()) :: :ok
def warning(group, message, metadata_or_format \\ %{})
def warning(group, message, format) when is_atom(format) do
log(:warning, group, message, %{}, format)
end
def warning(group, message, metadata) do
log(:warning, group, message, metadata)
end
@spec error(String.t(), String.t(), %{} | format()) :: :ok
def error(group, message, metadata_or_format \\ %{})
def error(group, message, format) when is_atom(format) do
log(:error, group, message, %{}, format)
end
def error(group, message, metadata) do
log(:error, group, message, metadata)
end
@spec critical(String.t(), String.t(), %{} | format()) :: :ok
def critical(group, message, metadata_or_format \\ %{})
def critical(group, message, format) when is_atom(format) do
log(:critical, group, message, %{}, format)
end
def critical(group, message, metadata) do
log(:critical, group, message, metadata)
end
@spec alert(String.t(), String.t(), %{} | format()) :: :ok
def alert(group, message, metadata_or_format \\ %{})
def alert(group, message, format) when is_atom(format) do
log(:alert, group, message, %{}, format)
end
def alert(group, message, metadata) do
log(:alert, group, message, metadata)
end
@spec emergency(String.t(), String.t(), %{} | format()) :: :ok
def emergency(group, message, metadata_or_format \\ %{})
def emergency(group, message, format) when is_atom(format) do
log(:emergency, group, message, %{}, format)
end
def emergency(group, message, metadata) do
log(:emergency, group, message, metadata)
end
@spec log(log_level(), String.t(), String.t(), %{}, format()) :: :ok
def log(log_level, group, message, metadata, format \\ :autodetect) do
encoded_metadata = Appsignal.Utils.DataEncoder.encode(metadata)
@nif.log(group, severity(log_level), format(format), message, encoded_metadata)
end
defp severity(:debug), do: 2
defp severity(:info), do: 3
defp severity(:notice), do: 4
defp severity(:warn), do: 5
defp severity(:warning), do: 5
defp severity(:error), do: 6
defp severity(:critical), do: 7
defp severity(:alert), do: 8
defp severity(:emergency), do: 9
defp severity(_), do: 3
defp format(:autodetect), do: 3
defp format(:json), do: 2
defp format(:logfmt), do: 1
defp format(:plaintext), do: 0
defp format(_), do: 3
end