Liking cljdoc? Tell your friends :D

clj-bugsnag

Clojars Project cljdoc badge GitHub Runner

A fully fledged Bugsnag exception reporting client for Clojure.

Originally forked from MicrosoftArchive

Features

  • Automatically exposes ex-info data as metadata
  • Ring middleware included, attaches ring request map as metadata
  • Include snippet of code around stack trace lines
  • Mark in-project stack traces to hide frameworks
  • Pass along user IDs to Bugsnag

Releases and Dependency Information

A deployed copy of the most recent version of clj-bugsnag can be found on clojars. To use it, add the following as a dependency in your project.clj or deps.edn file:

Clojars Project

The next time you build your application, Leiningen or tools.deps should pull it automatically. Alternatively, you may clone or fork the repository to work with it directly.

Example Usage

(require '[clj-bugsnag.core :as bugsnag]
         '[clj-bugsnag.ring :as bugsnag.ring])

;; Ring middleware, all keys besides :api-key are optional:

(bugsnag.ring/wrap-bugsnag
  handler
  {:api-key "Project API key"
   ;; Defaults to "production"
   :environment "production"
   ;; Project namespace prefix, used to hide irrelevant stack trace elements
   :project-ns "your-project-ns-prefix"
   ;; A optional version for your app, this is displayed in bugsnag.
   ;; If not provided the latest git sha will be used - this means that
   ;; the git repo is available when you run your app.
   :version "your-app-version"
   ;; A optional function to extract a user object from a ring request map
   ;; Used to count how many users are affected by a crash
   :user-from-request (constantly {:id "shall return a map"})})

;; Manual reporting using the notify function:

(try
  (some-function-that-could-crash some-input)
  (catch Exception exception

    ;; Notify with options map, all keys are optional:
    (bugsnag/notify
      exception
      {:api-key "Project API key"
       ;; Attach custom metadata to create tabs in Bugsnag:
       :meta {:input some-input}
       ;; Pass a user object to Bugsnag for better stats
       :user {:id ... :email ...}})

    ;; If no api-key is provided, clj-bugsnag
    ;; will fall back to BUGSNAG_KEY environment variable
    (bugsnag/notify exception)))

License

Distributed under the Eclipse Public License, the same as Clojure and the predecessor of this fork.

Can you improve this documentation? These fine people already did:
Torsten Becker, nnichols, Andrei Ursan & Ben Scofield
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close