Elixir client for the Airbrake service!
Add Airbrakex as a dependency to your mix.exs
file:
defp deps do
[{:airbrakex, "~> 0.1.3"}]
end
If on Elixir 1.3 or lower you will need to add it to your applications.
def application do
[applications: [:airbrakex]]
end
Then run mix deps.get
in your shell to fetch the dependencies.
It requires project_key
and project
parameters to be set
in your application environment, usually defined in your config/config.exs
.
logger_level
and environment
are optional.
If you want to use errbit instance, set custom url as endpoint.
config :airbrakex,
project_key: "abcdef12345",
project_id: 123456,
logger_level: :error,
environment: Mix.env,
endpoint: "http://errbit.yourdomain.com"
try do
IO.inspect("test",[],"")
rescue
exception -> Airbrakex.notify(exception)
end
There is a Logger backend to send logs to the Airbrake, which could be configured as follows:
config :logger,
backends: [:console, Airbrakex.LoggerBackend]
You can plug Airbrakex.Plug
in your web application Plug stack to send all exception to Airbrake
defmodule YourApp.Router do
use Phoenix.Router
use Airbrakex.Plug
# ...
end
You can ignore certain types of errors by specifying :ignore
config key:
config :airbrakex,
...
# List form
ignore: [Phoenix.Router.NoRouteError]
# OR
# Function
ignore: fn(error) ->
cond do
error.type == Phoenix.Router.NoRouteError -> true
String.contains?(error.message, "Ecto.NoResultsError") -> true
true -> false
end
end