defmodule ReactPhoenixWeb.Router do
use ReactPhoenixWeb, :router
use Plug.ErrorHandler
use Sentry.Plug
#........
plug Sentry.PlugContext
plug Plug.MethodOverride
plug Plug.Head
plug Plug.Session, @session_options
plug ReactPhoenixWeb.Router
end
Logger.error
config :logger, backends: [:console, Sentry.LoggerBackend]
#print all messages in prod
config :logger, :console, level: :debug
#sentry capture all error messages
config :logger,
Sentry.LoggerBackend,
# Send messages like `Logger.error("error")` to Sentry
capture_log_messages: true,
# Also send warn messages like `Logger.warn("warning")` to Sentry
# level: :warn,
# Do not exclude exceptions from Plug/Cowboy
excluded_domains: [],
# Include metadata added with `Logger.metadata([foo_bar: "value"])`
metadata: [:request_id]
Usage
Otherwise, we provide a simple way to capture exceptions manually:
try do
ThisWillError.really()
rescue
my_exception ->
Sentry.capture_exception(my_exception, [stacktrace: __STACKTRACE__, extra: %{extra: information}])
end