java.json 29 KB

123456
  1. {
  2. "html": "<div class=\"section\" id=\"installation\">\n<h2>Installation</h2>\n<p>Using Maven:</p>\n<div class=\"highlight-xml\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span><span style=\"color: #2eb0f7\">&lt;dependency&gt;</span>\n <span style=\"color: #2eb0f7\">&lt;groupId&gt;</span>io.sentry<span style=\"color: #2eb0f7\">&lt;/groupId&gt;</span>\n <span style=\"color: #2eb0f7\">&lt;artifactId&gt;</span>sentry<span style=\"color: #2eb0f7\">&lt;/artifactId&gt;</span>\n <span style=\"color: #2eb0f7\">&lt;version&gt;</span>1.6.3<span style=\"color: #2eb0f7\">&lt;/version&gt;</span>\n<span style=\"color: #2eb0f7\">&lt;/dependency&gt;</span>\n</pre></div>\n</div>\n<p>Using Gradle:</p>\n<div class=\"highlight-groovy\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span><span style=\"color: #111111\">compile</span> <span style=\"color: #e8535a\">&#39;io.sentry:sentry:1.6.3&#39;</span>\n</pre></div>\n</div>\n<p>Using SBT:</p>\n<div class=\"highlight-scala\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span><span style=\"color: #111111\">libraryDependencies</span> <span style=\"color: #4b4f5c\">+=</span> <span style=\"color: #e8535a\">&quot;io.sentry&quot;</span> <span style=\"color: #4b4f5c\">%</span> <span style=\"color: #e8535a\">&quot;sentry&quot;</span> <span style=\"color: #4b4f5c\">%</span> <span style=\"color: #e8535a\">&quot;1.6.3&quot;</span>\n</pre></div>\n</div>\n<p>For other dependency managers see the <a class=\"reference external\" href=\"https://search.maven.org/#artifactdetails%7Cio.sentry%7Csentry%7C1.6.3%7Cjar\">central Maven repository</a>.</p>\n</div>\n\n\n<div class=\"section\" id=\"capture-an-error\">\n<h2>Capture an Error</h2>\n<p id=\"usage-example\">To report an event manually you need to initialize a <code class=\"docutils literal\"><span class=\"pre\">SentryClient</span></code>. It is recommended\nthat you use the static API via the <code class=\"docutils literal\"><span class=\"pre\">Sentry</span></code> class, but you can also construct and manage\nyour own <code class=\"docutils literal\"><span class=\"pre\">SentryClient</span></code> instance. An example of each style is shown below:</p>\n<div class=\"highlight-java\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span><span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.context.Context</span><span style=\"color: #4b4f5c\">;</span>\n<span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.BreadcrumbBuilder</span><span style=\"color: #4b4f5c\">;</span>\n<span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.UserBuilder</span><span style=\"color: #4b4f5c\">;</span>\n\n<span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">class</span> <span style=\"color: #111111\">MyClass</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">private</span> <span style=\"color: #2eb0f7\">static</span> <span style=\"color: #111111\">SentryClient</span> <span style=\"color: #111111\">sentry</span><span style=\"color: #4b4f5c\">;</span>\n\n <span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">static</span> <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">main</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">String</span><span style=\"color: #4b4f5c\">...</span> <span style=\"color: #111111\">args</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">/*</span>\n<span style=\"color: #34c08b; font-style: italic\"> It is recommended that you use the DSN detection system, which</span>\n<span style=\"color: #34c08b; font-style: italic\"> will check the environment variable &quot;SENTRY_DSN&quot;, the Java</span>\n<span style=\"color: #34c08b; font-style: italic\"> System Property &quot;sentry.dsn&quot;, or the &quot;sentry.properties&quot; file</span>\n<span style=\"color: #34c08b; font-style: italic\"> in your classpath. This makes it easier to provide and adjust</span>\n<span style=\"color: #34c08b; font-style: italic\"> your DSN without needing to change your code. See the configuration</span>\n<span style=\"color: #34c08b; font-style: italic\"> page for more information.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">init</span><span style=\"color: #4b4f5c\">();</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// You can also manually provide the DSN to the ``init`` method.</span>\n <span style=\"color: #111111\">String</span> <span style=\"color: #111111\">dsn</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #111111\">args</span><span style=\"color: #4b4f5c\">[</span><span style=\"color: #45c2c9\">0</span><span style=\"color: #4b4f5c\">];</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">init</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">dsn</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">/*</span>\n<span style=\"color: #34c08b; font-style: italic\"> It is possible to go around the static ``Sentry`` API, which means</span>\n<span style=\"color: #34c08b; font-style: italic\"> you are responsible for making the SentryClient instance available</span>\n<span style=\"color: #34c08b; font-style: italic\"> to your code.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #111111\">sentry</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #111111\">SentryClientFactory</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">sentryClient</span><span style=\"color: #4b4f5c\">();</span>\n\n <span style=\"color: #111111\">MyClass</span> <span style=\"color: #111111\">myClass</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">MyClass</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #111111\">myClass</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">logWithStaticAPI</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #111111\">myClass</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">logWithInstanceAPI</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #34c08b; font-style: italic\">/**</span>\n<span style=\"color: #34c08b; font-style: italic\"> * An example method that throws an exception.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">unsafeMethod</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">throw</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">UnsupportedOperationException</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;You shouldn&#39;t call this!&quot;</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #34c08b; font-style: italic\">/**</span>\n<span style=\"color: #34c08b; font-style: italic\"> * Examples using the (recommended) static API.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">logWithStaticAPI</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// Note that all fields set on the context are optional. Context data is copied onto</span>\n <span style=\"color: #34c08b; font-style: italic\">// all future events in the current context (until the context is cleared).</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Record a breadcrumb in the current context. By default the last 100 breadcrumbs are kept.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getContext</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">recordBreadcrumb</span><span style=\"color: #4b4f5c\">(</span>\n <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">BreadcrumbBuilder</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">setMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;User made an action&quot;</span><span style=\"color: #4b4f5c\">).</span><span style=\"color: #a47ac6\">build</span><span style=\"color: #4b4f5c\">()</span>\n <span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Set the user in the current context.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getContext</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">setUser</span><span style=\"color: #4b4f5c\">(</span>\n <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">UserBuilder</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">setEmail</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;hello@sentry.io&quot;</span><span style=\"color: #4b4f5c\">).</span><span style=\"color: #a47ac6\">build</span><span style=\"color: #4b4f5c\">()</span>\n <span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Add extra data to future events in this context.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getContext</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">addExtra</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;extra&quot;</span><span style=\"color: #4b4f5c\">,</span> <span style=\"color: #e8535a\">&quot;thing&quot;</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Add an additional tag to future events in this context.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getContext</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">addTag</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;tagName&quot;</span><span style=\"color: #4b4f5c\">,</span> <span style=\"color: #e8535a\">&quot;tagValue&quot;</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">/*</span>\n<span style=\"color: #34c08b; font-style: italic\"> This sends a simple event to Sentry using the statically stored instance</span>\n<span style=\"color: #34c08b; font-style: italic\"> that was created in the ``main`` method.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">capture</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;This is a test&quot;</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #2eb0f7\">try</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">unsafeMethod</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #4b4f5c\">}</span> <span style=\"color: #2eb0f7\">catch</span> <span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">Exception</span> <span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// This sends an exception event to Sentry using the statically stored instance</span>\n <span style=\"color: #34c08b; font-style: italic\">// that was created in the ``main`` method.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">capture</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #34c08b; font-style: italic\">/**</span>\n<span style=\"color: #34c08b; font-style: italic\"> * Examples that use the SentryClient instance directly.</span>\n<span style=\"color: #34c08b; font-style: italic\"> */</span>\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">logWithInstanceAPI</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// Retrieve the current context.</span>\n <span style=\"color: #111111\">Context</span> <span style=\"color: #111111\">context</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #111111\">sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getContext</span><span style=\"color: #4b4f5c\">();</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Record a breadcrumb in the current context. By default the last 100 breadcrumbs are kept.</span>\n <span style=\"color: #111111\">context</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">recordBreadcrumb</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">BreadcrumbBuilder</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">setMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;User made an action&quot;</span><span style=\"color: #4b4f5c\">).</span><span style=\"color: #a47ac6\">build</span><span style=\"color: #4b4f5c\">());</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Set the user in the current context.</span>\n <span style=\"color: #111111\">context</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">setUser</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">UserBuilder</span><span style=\"color: #4b4f5c\">().</span><span style=\"color: #a47ac6\">setEmail</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;hello@sentry.io&quot;</span><span style=\"color: #4b4f5c\">).</span><span style=\"color: #a47ac6\">build</span><span style=\"color: #4b4f5c\">());</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// This sends a simple event to Sentry.</span>\n <span style=\"color: #111111\">sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">sendMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;This is a test&quot;</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #2eb0f7\">try</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">unsafeMethod</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #4b4f5c\">}</span> <span style=\"color: #2eb0f7\">catch</span> <span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">Exception</span> <span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// This sends an exception event to Sentry.</span>\n <span style=\"color: #111111\">sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">sendException</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n <span style=\"color: #4b4f5c\">}</span>\n<span style=\"color: #4b4f5c\">}</span>\n</pre></div>\n</div>\n<div class=\"section\" id=\"building-more-complex-events\">\n<h3>Building More Complex Events</h3>\n<p>For more complex messages, you&#8217;ll need to build an <code class=\"docutils literal\"><span class=\"pre\">Event</span></code> with the\n<code class=\"docutils literal\"><span class=\"pre\">EventBuilder</span></code> class:</p>\n<div class=\"highlight-java\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span> <span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.Sentry</span><span style=\"color: #4b4f5c\">;</span>\n <span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.Event</span><span style=\"color: #4b4f5c\">;</span>\n <span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.EventBuilder</span><span style=\"color: #4b4f5c\">;</span>\n <span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.interfaces.ExceptionInterface</span><span style=\"color: #4b4f5c\">;</span>\n\n <span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">class</span> <span style=\"color: #111111\">MyClass</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">static</span> <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">main</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">String</span><span style=\"color: #4b4f5c\">...</span> <span style=\"color: #111111\">args</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">init</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">unsafeMethod</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">throw</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">UnsupportedOperationException</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;You shouldn&#39;t call this!&quot;</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">logSimpleMessage</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// This sends an event to Sentry.</span>\n <span style=\"color: #111111\">EventBuilder</span> <span style=\"color: #111111\">eventBuilder</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">EventBuilder</span><span style=\"color: #4b4f5c\">()</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;This is a test&quot;</span><span style=\"color: #4b4f5c\">)</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withLevel</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">Event</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">Level</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">INFO</span><span style=\"color: #4b4f5c\">)</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withLogger</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">MyClass</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">class</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getName</span><span style=\"color: #4b4f5c\">());</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Note that the *unbuilt* EventBuilder instance is passed in so that</span>\n <span style=\"color: #34c08b; font-style: italic\">// EventBuilderHelpers are run to add extra information to your event.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">capture</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">eventBuilder</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n\n <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">logException</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">try</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">unsafeMethod</span><span style=\"color: #4b4f5c\">();</span>\n <span style=\"color: #4b4f5c\">}</span> <span style=\"color: #2eb0f7\">catch</span> <span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">Exception</span> <span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #34c08b; font-style: italic\">// This sends an exception event to Sentry.</span>\n <span style=\"color: #111111\">EventBuilder</span> <span style=\"color: #111111\">eventBuilder</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">EventBuilder</span><span style=\"color: #4b4f5c\">()</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;Exception caught&quot;</span><span style=\"color: #4b4f5c\">)</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withLevel</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">Event</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">Level</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">ERROR</span><span style=\"color: #4b4f5c\">)</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withLogger</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">MyClass</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">class</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getName</span><span style=\"color: #4b4f5c\">())</span>\n <span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withSentryInterface</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">ExceptionInterface</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">e</span><span style=\"color: #4b4f5c\">));</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Note that the *unbuilt* EventBuilder instance is passed in so that</span>\n <span style=\"color: #34c08b; font-style: italic\">// EventBuilderHelpers are run to add extra information to your event.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">capture</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">eventBuilder</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n <span style=\"color: #4b4f5c\">}</span>\n<span style=\"color: #4b4f5c\">}</span>\n</pre></div>\n</div>\n</div>\n<div class=\"section\" id=\"automatically-enhancing-events\">\n<h3>Automatically Enhancing Events</h3>\n<p>You can also implement an <code class=\"docutils literal\"><span class=\"pre\">EventBuilderHelper</span></code> that is able to automatically\nenhance outgoing events.</p>\n<div class=\"highlight-java\"><div class=\"highlight\" style=\"background: #ffffff\"><pre style=\"line-height: 125%\"><span></span><span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.Sentry</span><span style=\"color: #4b4f5c\">;</span>\n<span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.SentryClient</span><span style=\"color: #4b4f5c\">;</span>\n<span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.EventBuilder</span><span style=\"color: #4b4f5c\">;</span>\n<span style=\"color: #2eb0f7\">import</span> <span style=\"color: #111111\">io.sentry.event.helper.EventBuilderHelper</span><span style=\"color: #4b4f5c\">;</span>\n\n<span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">class</span> <span style=\"color: #111111\">MyClass</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">myMethod</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">SentryClient</span> <span style=\"color: #111111\">client</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">getStoredClient</span><span style=\"color: #4b4f5c\">();</span>\n\n <span style=\"color: #111111\">EventBuilderHelper</span> <span style=\"color: #111111\">myEventBuilderHelper</span> <span style=\"color: #4b4f5c\">=</span> <span style=\"color: #2eb0f7\">new</span> <span style=\"color: #111111\">EventBuilderHelper</span><span style=\"color: #4b4f5c\">()</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #696D80\">@Override</span>\n <span style=\"color: #2eb0f7\">public</span> <span style=\"color: #2eb0f7\">void</span> <span style=\"color: #111111\">helpBuildingEvent</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">EventBuilder</span> <span style=\"color: #111111\">eventBuilder</span><span style=\"color: #4b4f5c\">)</span> <span style=\"color: #4b4f5c\">{</span>\n <span style=\"color: #111111\">eventBuilder</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">withMessage</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;Overwritten by myEventBuilderHelper!&quot;</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n <span style=\"color: #4b4f5c\">};</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Add an ``EventBuilderHelper`` to the current client instance. Note that</span>\n <span style=\"color: #34c08b; font-style: italic\">// this helper will process *all* future events.</span>\n <span style=\"color: #111111\">client</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">addBuilderHelper</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #111111\">myEventBuilderHelper</span><span style=\"color: #4b4f5c\">);</span>\n\n <span style=\"color: #34c08b; font-style: italic\">// Send an event to Sentry. During construction of the event the message</span>\n <span style=\"color: #34c08b; font-style: italic\">// body will be overwritten by ``myEventBuilderHelper``.</span>\n <span style=\"color: #111111\">Sentry</span><span style=\"color: #4b4f5c\">.</span><span style=\"color: #a47ac6\">capture</span><span style=\"color: #4b4f5c\">(</span><span style=\"color: #e8535a\">&quot;Hello, world!&quot;</span><span style=\"color: #4b4f5c\">);</span>\n <span style=\"color: #4b4f5c\">}</span>\n<span style=\"color: #4b4f5c\">}</span>\n</pre></div>\n</div>\n</div>\n</div>\n",
  3. "link": "https://docs.getsentry.com/clients/java/",
  4. "id": "java",
  5. "name": "Java"
  6. }