Skip to content

Fully fledged Bugsnag client for Clojure. Supports ex-data and ring middleware.

License

Notifications You must be signed in to change notification settings

ekataglobal/clj-bugsnag

 
 

Repository files navigation

clj-bugsnag

A fully fledged Bugsnag exception reporting client for Clojure.

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
  • Tested, used in production at 6 Wunderkinder for Wunderlist

Releases and Dependency Information

The latest version of clj-bugsnag is currently only available via git-deps, but there is an older version, 0.4.0, available via Clojars.

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)))

Unit Tests

Running bin/kaocha runs all tests using the kaocha-midje kaocha plugin. There is only output when there are failed tests.

License

Copyright © 2014-2015 6 Wunderkinder GmbH.

Distributed under the Eclipse Public License, the same as Clojure.

About

Fully fledged Bugsnag client for Clojure. Supports ex-data and ring middleware.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Clojure 99.5%
  • Shell 0.5%