ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - Cobenian/raygun: A raygun client for Elixir
A raygun client for Elixir. Contribute to Cobenian/raygun development by creating an account on GitHub.
Visit Site

GitHub - Cobenian/raygun: A raygun client for Elixir

GitHub - Cobenian/raygun: A raygun client for Elixir

Raygun Build Status Hex.pm Hex.pm Coverage Status

Capture and send errors in your Elixir applications to Raygun for centralized bug reporting.

Install

Add the dependency to your mix.exs file.

def deps do  
  [{:raygun, "~> 0.3.1"}]
end

Add Raygun, httpoison and tzdata to the list of applications.

def application do
  [applications: [:logger, :raygun, :httpoison, :tzdata]
end

Configuration

Add the following entry to your config/config.exs file.

config :raygun,
    api_key: "<INSERT YOUR API KEY HERE>"

You can OPTIONALLY add other configuration options as well. They will be sent with every error.

  • tags: list of metadata strings
  • url: a reference URL
  • client_name: the name of the application as you want it to appear in Raygun
  • client_version: the version of the application as you want it to appear in Raygun
config :raygun,
    api_key: "<INSERT YOUR API KEY HERE>",
    tags: ["tag1", "tag2"],
    url: "http://docs.myapp.example.com",
    client_name: "MyApp",
    client_version: "2.3.4"

If you use a Plug, the version (client_version above) should be auto detected for you.

Usage

There are three different ways you can use Raygun. All three ways may be combined, but you might send the same message multiple times if you do that.

Via Plug in Phoenix

Add the plug to your router:

defmodule YourApp.Router do
  use Phoenix.Router
  use Raygun.Plug

  # ...
end

You can also provide a function that takes a Plug.Conn and returns a map with information about the logged in user.

defmodule YourApp.Router do
  use Phoenix.Router
  use Raygun.Plug, user: fn(conn) ->
    %{
      identifier: "<user id>",
      isAnonymous: false, # false if logged in, true if not logged in
      email: "[email protected]",
      fullName: "John Doe",
      firstName: "John",
      uuid: "<uuid>"
    }
  end

  # ...
end

Via the Logger

Any error logged with automatically be sent to Raygun.

Configure the Logger to use the Raygun backend. You can do this programmatically

Logger.add_backend(Raygun.Logger)

or via configuration by adding Raygun as a backend in config/config.exs:

config :logger,
  backends: [:console, Raygun.Logger]

Any messages logged at :error level will be automatically sent to Raygun.

If you would like messages to be associated with a system user then add the following configuration to config/config.exs:

config :raygun,
    system_user: %{
      			identifier: "myuserid",
      			isAnonymous: true,
      			email: "[email protected]",
      			fullName: "Jane Doe",
      			firstName: "Jane",
      			uuid: "b07eb66c-9055-4847-a173-881b77cdc83e"
    		  }

Any Elixir code

Start our Raygun application (if you did not configure it as an application in mix.exs)

Raygun.start

Send a string message to Raygun:

Raygun.report_message "Oh noes."

Report an exception programmatically. Be sure that System.stacktrace will be the correct stack trace!

try do
  :foo = :bar
rescue
  exception -> Raygun.report_exception(exception)
end

Or capture the stacktrace explicitly yourself and pass it to Raygun.

try do
  :foo = :bar
rescue
  exception ->
    stacktrace = System.stacktrace
    Raygun.report_stacktrace(stacktrace, exception)
end

Both forms allow some custom context to be passed as an optional final parameters as a Map. This will appear as 'userCustomData' under the custom tab in Raygun's web interface.

try do
  :foo = :bar
rescue
  exception ->
    Raygun.report_stacktrace(System.stacktrace, exception, %{env: Mix.env})
end

License

LICENSE

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory