Current section

Files

Jump to
new_relic_agent lib new_relic error supervisor.ex
Raw

lib/new_relic/error/supervisor.ex

defmodule NewRelic.Error.Supervisor do
use Supervisor
alias NewRelic.Error
# Registers an erlang error logger to catch and report errors.
@moduledoc false
def start_link(_) do
Supervisor.start_link(__MODULE__, [])
end
def init(_) do
children = [
{Task.Supervisor, name: Error.TaskSupervisor}
]
if NewRelic.Config.feature?(:error_collector) do
add_handler()
end
Supervisor.init(children, strategy: :one_for_one)
end
def add_handler(),
do: NewRelic.Error.LoggerHandler.add_handler()
def remove_handler(),
do: NewRelic.Error.LoggerHandler.remove_handler()
end