A thin wrapper around the official Java library for Sentry.
A thin wrapper around the official Java library for Sentry.
(flush-events timeout-millis)Flushes events to Sentry, blocking until the flush is complete.
You can pass a timeout in milliseconds to wait for the flush to complete.
Flushes events to Sentry, blocking until the flush is complete. You can pass a timeout in milliseconds to wait for the flush to complete.
(init! dsn)(init! dsn {:keys [contexts] :as config})Initialize Sentry with the mandatory dsn
Other options include:
| key | description | default | 
|---|---|---|
:enable-external-configuration | Enable loading configuration from the properties file, system properties or environment variables | |
:environment | Set the environment on which Sentry events will be logged, e.g., "production" | production | 
:enabled | Enable or disable sentry. | true | 
:debug | Enable SDK logging at the debug level | false | 
:logger | Instance of io.sentry.ILogger (only applies when :debug is on) | io.sentry.SystemOutLogger | 
:diagnostic-level | Log messages at or above this level (only applies when :debug is on) | :debug | 
:release | All events are assigned to a particular release | |
:dist | Set the application distribution that will be sent with each event | |
:server-name | Set the server name that will be sent with each event | |
:shutdown-timeout-millis | Wait up to X milliseconds before shutdown if there are events to send | 2000ms | 
:in-app-includes | A seqable collection (vector for example) containing package names to include when sending events | |
:in-app-excludes | A seqable collection (vector for example) containing package names to ignore when sending events | |
| `:ignored-exceptions-for-type | Set exceptions that will be filtered out before sending to Sentry (a set of Classnames as Strings) | |
:enable-uncaught-exception-handler | Enables the uncaught exception handler | true | 
:before-send-fn | A function (taking an event and a hint) | |
| The body of the function must not be lazy (i.e., don't use filter on its own!) and must return an event or nil | ||
| If a nil is returned, the event will not be sent to Sentry | ||
| More Information | ||
:before-breadcrumb-fn | A function (taking a breadcrumb and a hint) | |
| The body of the function must not be lazy (i.e., don't use filter on its own!) and must return a breadcrumb or nil | ||
| If a nil is returned, the breadcrumb will not be sent to Sentry | ||
| More Information | ||
:contexts | A map of key/value pairs to attach to every Event that is sent. | |
| [More Information)(https://docs.sentry.io/platforms/java/enriching-events/context/) | ||
:traces-sample-rate | Set a uniform sample rate(a number of between 0.0 and 1.0) for all transactions for tracing | |
:traces-sample-fn | A function (taking a custom sample context and a transaction context) enables you to control trace transactions | |
:serialization-max-depth | Set to a lower number, i.e., 2, if you experience circular reference errors when sending events | 5 | 
:trace-options-request | Set to enable or disable tracing of options requests | true | 
Some examples:
(init! "http://abcdefg@localhost:19000/2")
(init! "http://abcdefg@localhost:19000/2" {:environment "production" :debug true :release "foo.bar@1.0.0" :in-app-excludes ["foo.bar"])
(init! "http://abcdefg@localhost:19000/2" {:before-send-fn (fn [event _] (when-not (= (.. event getMessage getMessage "foo")) event))})
(init! "http://abcdefg@localhost:19000/2" {:before-send-fn (fn [event _] (.setServerName event "fred") event)})
(init! "http://abcdefg@localhost:19000/2" {:contexts {:foo "bar" :baz "wibble"}})
Initialize Sentry with the mandatory `dsn`
Other options include:
| key                                  | description                                                                                                        | default
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -------
| `:enable-external-configuration`     | Enable loading configuration from the properties file, system properties or environment variables                  |
| `:environment`                       | Set the environment on which Sentry events will be logged, e.g., "production"                                    | production
| `:enabled`                           | Enable or disable sentry.                                                                                          | true
| `:debug`                             | Enable SDK logging at the debug level                                                                              | false
| `:logger`                            | Instance of `io.sentry.ILogger` (only applies when `:debug` is on)                                                 | `io.sentry.SystemOutLogger`
| `:diagnostic-level`                  | Log messages at or above this level (only applies when `:debug` is on)                                             | `:debug`
| `:release`                           | All events are assigned to a particular release                                                                    |
| `:dist`                              | Set the application distribution that will be sent with each event                                                 |
| `:server-name`                       | Set the server name that will be sent with each event                                                              |
| `:shutdown-timeout-millis`           | Wait up to X milliseconds before shutdown if there are events to send                                              | 2000ms
| `:in-app-includes`                   | A seqable collection (vector for example) containing package names to include when sending events                  |
| `:in-app-excludes`                   | A seqable collection (vector for example) containing package names to ignore when sending events                   |
| `:ignored-exceptions-for-type        | Set exceptions that will be filtered out before sending to Sentry (a set of Classnames as Strings)                 |
| `:enable-uncaught-exception-handler` | Enables the uncaught exception handler                                                                             | true
| `:before-send-fn`                    | A function (taking an event and a hint)                                                                            |
|                                      | The body of the function must not be lazy (i.e., don't use filter on its own!) and must return an event or nil     |
|                                      | If a nil is returned, the event will not be sent to Sentry                                                         |
|                                      | [More Information](https://docs.sentry.io/platforms/java/data-management/sensitive-data/)                          |
| `:before-breadcrumb-fn`              | A function (taking a breadcrumb and a hint)                                                                        |
|                                      | The body of the function must not be lazy (i.e., don't use filter on its own!) and must return a breadcrumb or nil |
|                                      | If a nil is returned, the breadcrumb will not be sent to Sentry                                                    |
|                                      | [More Information](https://docs.sentry.io/platforms/java/enriching-events/breadcrumbs/)                            |
| `:contexts`                          | A map of key/value pairs to attach to every Event that is sent.                                                    |
|                                      | [More Information)(https://docs.sentry.io/platforms/java/enriching-events/context/)                                |
| `:traces-sample-rate`                | Set a uniform sample rate(a number of between 0.0 and 1.0) for all transactions for tracing                        |
| `:traces-sample-fn`                  | A function (taking a custom sample context and a transaction context) enables you to control trace transactions    |
| `:serialization-max-depth`           | Set to a lower number, i.e., 2, if you experience circular reference errors when sending events                    | 5
| `:trace-options-request`             | Set to enable or disable tracing of options requests                                                               | true
Some examples:
```clojure
(init! "http://abcdefg@localhost:19000/2")
```
```clojure
(init! "http://abcdefg@localhost:19000/2" {:environment "production" :debug true :release "foo.bar@1.0.0" :in-app-excludes ["foo.bar"])
```
```clojure
(init! "http://abcdefg@localhost:19000/2" {:before-send-fn (fn [event _] (when-not (= (.. event getMessage getMessage "foo")) event))})
```
```clojure
(init! "http://abcdefg@localhost:19000/2" {:before-send-fn (fn [event _] (.setServerName event "fred") event)})
```
```clojure
(init! "http://abcdefg@localhost:19000/2" {:contexts {:foo "bar" :baz "wibble"}})
```
(java-util-hashmappify-vals m)Converts an ordinary Clojure map into a Clojure map with nested map values recursively translated into java.util.HashMap objects. Based on walk/stringify-keys.
Converts an ordinary Clojure map into a Clojure map with nested map values recursively translated into java.util.HashMap objects. Based on walk/stringify-keys.
(send-event event)Sends the given event to Sentry, returning the event's id
Supports sending throwables:
(sentry/send-event {:message   "oh no",
:throwable (RuntimeException. "foo bar"})
Sends the given event to Sentry, returning the event's id
Supports sending throwables:
```
(sentry/send-event {:message   "oh no",
:throwable (RuntimeException. "foo bar"})
```
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |