Honeybadger v0.6.2 Honeybadger
This module contains the notify macro and context function you can use in your applications.
### Configuring By default the HONEYBADGER_API_KEY environment variable is used to find your API key for Honeybadger. You can also manually set your API key by configuring the :honeybadger application. You can see the default configuration in the default_config/0 private function at the bottom of this file.
config :honeybadger,
api_key: "mysupersecretkey",
environment_name: :prod,
app: :my_app_name,
exclude_envs: [:dev, :test],
hostname: "myserver.domain.com",
origin: "https://api.honeybadger.io",
project_root: "/home/skynet",
use_logger: true
### Notifying Honeybadger.notify is a macro so that it can be wiped away in environments that you don’t need exception monitoring in such as dev and test. If you use the Plug and Logger included in this library you won’t need to use Honeybadger.notify very often. Here is an example:
exception = %RuntimeError{message: "Oops"}
context = %{user_id: 1, account: "A Very Important Customer"}
{:current_stacktrace, stacktrace} = Process.info(self, :current_stacktrace)
Honeybadger.notify(exception, context, stacktrace)
### Setting Context You can add an arbitrary map of context that will get sent to the Honeybadger API when/if an exception occurs in that process. Do keep in mind the process dictionary is used for retrieving this context so try not to put large data structures in the context.
Honeybadger.context(user_id: 1, account: "My Favorite Customer")
Honeybadger.context(%{user_id: 2, account: "That Needy Customer")
### Using the Plug
If you’re using Phoenix, or any Plug-based Elixir web framework, you can
use
the Honeybadger.Plug module in your Router and all exceptions in web
requests will automatically be reported to Honeybadger.
defmodule MoneyPrinter.Router do
use MoneyPrinter.Web, :router
use Honeybadger.Plug
end
You can also automatically set useful context on every request by defining a Plug compatible function:
defmodule MoneyPrinter.Router do
use MoneyPrinter.Web, :router
use Honeybadger.Plug
plug :set_honeybadger_context
# your routes
defp set_honeybadger_context(conn, _opts) do
user = get_user(conn)
Honeybadger.context(user_id: user.id, account: user.account)
conn
end
end
### Using the error logger
By default the logger is enabled. The logger will
automatically receive any error reports for SASL compliant
processes such as GenServers, GenEvents, Agents, Tasks and
any process spawned using proc_lib
. You can disable the
logger by setting use_logger
to false in your
Honeybadger config.
Summary
Functions
This is here as a callback to Application to configure and start the Honeybadger client’s dependencies. You’ll likely never need to call this function yourself