Current section

Files

Jump to
new_relic_agent lib new_relic error logger_handler.ex
Raw

lib/new_relic/error/logger_handler.ex

defmodule NewRelic.Error.LoggerHandler do
@moduledoc false
def add_handler() do
Logger.add_translator({__MODULE__, :translator})
end
def remove_handler() do
Logger.remove_translator({__MODULE__, :translator})
end
def translator(_level, _message, _timestamp, {_, [report | _]}) when is_list(report) do
if NewRelic.Transaction.Sidecar.tracking?() do
NewRelic.Error.Reporter.report_error(:transaction, report)
else
NewRelic.Error.Reporter.report_error(:process, report)
end
:skip
end
def translator(_level, :error, _timestamp, {_, %{args: _, function: _}} = metadata) do
if NewRelic.Transaction.Sidecar.tracking?() do
NewRelic.Error.MetadataReporter.report_error(:transaction, metadata)
else
NewRelic.Error.MetadataReporter.report_error(:process, metadata)
end
:none
end
def translator(_level, _message, _timestamp, _metadata), do: :none
end