GithubHelp home page GithubHelp logo

oucema90 / raven-csharp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from getsentry/raven-csharp

0.0 2.0 0.0 2.38 MB

Raven is a C# client for Sentry

Home Page: https://sentry.io

License: BSD 3-Clause "New" or "Revised" License

C# 98.58% PowerShell 0.90% Shell 0.41% HTML 0.11%

raven-csharp's Introduction


Looking for ASP.NET Core integration?

We've released a preview of our integration with ASP.NET Core and Microsoft.Extensions.Logging. If you are interested in checking it out, please go to this GitHub repository for details.

These integrations are based on a new SDK, built as part of the unified API initiative from Sentry. If you'd like to try the new API, we'd love to get some feedback.

Official Sentry SDK for .NET.

Stable Pre-release
GitHub GitHub release -
SharpRaven NuGet NuGet
SharpRaven.Nancy NuGet NuGet
Travis Build Master Develop
AppVeyor Build Master Develop

Usage

Instantiate the client with your 'Data Source Name' (DSN):

var ravenClient = new RavenClient("https://[email protected]/project-id");

Capturing Exceptions

Call out to the client in your catch block:

try
{
    int i2 = 0;
    int i = 10 / i2;
}
catch (Exception exception)
{
    ravenClient.Capture(new SentryEvent(exception));
}

Logging Non-Exceptions

You can capture a message without being bound by an exception:

ravenClient.Capture(new SentryEvent("Hello World!"));

Additional Data

You can add additional data to the Exception.Data property on exceptions thrown about in your solution:

try
{
    // ...    
}
catch (Exception exception)
{
    exception.Data.Add("SomeKey", "SomeValue");
    throw;
}

The data SomeKey and SomeValue will be captured and presented in the extra property on Sentry.

Additionally, the SentryEvent class allow you to provide extra data to be sent with your request, such as ErrorLevel, Fingerprint, a custom Message and Tags.

Async Support

In the .NET 4.5 or later build of SharpRaven, there's an async version of the Capture method as well:

async Task<string> CaptureAsync(SentryEvent @event);

Nancy Support

You can install the SharpRaven.Nancy package to capture the HTTP context in Nancy applications. It will auto-register on the IPipelines.OnError event, so all unhandled exceptions will be sent to Sentry.

The only thing you have to do is provide a DSN, either by registering an instance of the Dsn class in your container:

protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
    container.Register(new Dsn("https://[email protected]/project-id"));
}

or through configuration:

<configuration>
  <configSections>
    <section name="sharpRaven" type="SharpRaven.Nancy.NancyConfiguration, SharpRaven.Nancy" />
  </configSections>
  <sharpRaven>
    <dsn value="https://[email protected]/project-id" />
  </sharpRaven>
</configuration>

The DSN will be picked up by the auto-registered IRavenClient instance, so if you want to send events to Sentry, all you have to do is add a requirement on IRavenClient in your classes:

public class LoggingModule : NancyModule
{
    private readonly IRavenClient ravenClient;

    public LoggingModule(IRavenClient ravenClient)
    {
        this.ravenClient = ravenClient;
    }
}

Debugging SharpRaven

If an exception is raised internally to RavenClient it is logged to the Console. To extend this behaviour use the property ErrorOnCapture:

ravenClient.ErrorOnCapture = exception =>
{
    // Custom code here
};

You can also hook into the BeforeSend function to inspect or manipulate the data being sent to Sentry before it is sent:

ravenClient.BeforeSend = requester =>
{
    // Here you can log data from the requester
    // or replace it entirely if you want.
    return requester;
};

Get it!

You can clone and build SharpRaven yourself, but for those of us who are happy with prebuilt binaries, there's NuGet packages of both SharpRaven and SharpRaven.Nancy.

Resources

raven-csharp's People

Contributors

alex347 avatar alexanderfast avatar alirezajm avatar andya13 avatar asbjornu avatar ayodele07 avatar biegal avatar bruno-garcia avatar brunoblank avatar dcramer avatar ehfeng avatar ehvattum avatar galmeida avatar genne avatar gregmac avatar jmalczak avatar jviolas avatar mattrobenolt avatar meilu avatar mikebairdrocks avatar mitsuhiko avatar notheotherben avatar razzmatazz avatar realbrubru avatar samukce avatar skyline75489 avatar timorzadir avatar trurl123 avatar will14smith avatar xpicio avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.