コード例 #1
0
        protected override void Append(LoggingEvent loggingEvent)
        {
            if (ravenClient == null)
            {
                ravenClient = new RavenClient(DSN)
                {
                    Logger = Logger
                };
            }

            var extra = GetExtra();

            var tags = tagLayouts.ToDictionary(t => t.Name, t => (t.Layout.Format(loggingEvent) ?? "").ToString());

            var exception = loggingEvent.ExceptionObject ?? loggingEvent.MessageObject as Exception;
            var level     = Translate(loggingEvent.Level);

            if (exception != null)
            {
                ravenClient.CaptureException(exception, null, level, tags: tags, extra: extra);
            }
            else
            {
                var message = loggingEvent.RenderedMessage;

                if (message != null)
                {
                    ravenClient.CaptureMessage(message, level, tags, extra);
                }
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: striglone/raven-csharp
        static void Main(string[] args)
        {
            Console.WriteLine("Initializing RavenClient.");

            RavenClient rc = new RavenClient("https://*****:*****@app.getsentry.com/3739");

            PrintInfo("Sentry Uri: " + rc.CurrentDSN.SentryURI);
            PrintInfo("Port: " + rc.CurrentDSN.Port);
            PrintInfo("Public Key: " + rc.CurrentDSN.PublicKey);
            PrintInfo("Private Key: " + rc.CurrentDSN.PrivateKey);
            PrintInfo("Project ID: " + rc.CurrentDSN.ProjectID);

            Console.WriteLine("Causing division by zero exception.");
            try {

                rc.CaptureMessage("About to try the amazingly silly act of dividing by 0...");

                Program.PerformDivideByZero();
                Console.WriteLine("Failed.");
            } catch (Exception e) {
                Console.WriteLine("Captured: " + e.Message);
                int id = rc.CaptureException(e);
                Console.WriteLine("Sent packet: " + id);
            }

            Console.ReadLine();
        }
コード例 #3
0
        protected override void Append(LoggingEvent loggingEvent)
        {
            if (ravenClient == null)
            {
                ravenClient = new RavenClient(DSN)
                {
                    Logger = Logger,

                    // If something goes wrong when sending the event to Sentry, make sure this is written to log4net's internal
                    // log. See <add key="log4net.Internal.Debug" value="true"/>
                    ErrorOnCapture = ex => LogLog.Error(typeof(SentryAppender), "[" + Name + "] " + ex.Message, ex)
                };
            }

            var    httpExtra = HttpExtra.GetHttpExtra();
            object extra;

            if (httpExtra != null)
            {
                extra = new
                {
                    Environment = new EnvironmentExtra(),
                    Http        = httpExtra
                };
            }
            else
            {
                extra = new
                {
                    Environment = new EnvironmentExtra()
                };
            }

            var tags = tagLayouts.ToDictionary(t => t.Name, t => (t.Layout.Format(loggingEvent) ?? "").ToString());

            var exception = loggingEvent.ExceptionObject ?? loggingEvent.MessageObject as Exception;
            var level     = Translate(loggingEvent.Level);

            if (exception != null)
            {
                ravenClient.CaptureException(exception, null, level, tags: tags, extra: extra);
            }
            else
            {
                var message = loggingEvent.RenderedMessage;

                if (message != null)
                {
                    ravenClient.CaptureMessage(message, level, tags, extra);
                }
            }
        }
コード例 #4
0
        public void CaptureMessage_ScrubberIsInvoked()
        {
            string message = Guid.NewGuid().ToString("n");

            IRavenClient ravenClient = new RavenClient(TestHelper.DsnUri);

            ravenClient.LogScrubber = Substitute.For <IScrubber>();
            ravenClient.LogScrubber.Scrub(Arg.Any <string>())
            .Returns(c =>
            {
                string json = c.Arg <string>();
                Assert.That(json, Is.StringContaining(message));
                return(json);
            });

            ravenClient.CaptureMessage(message);

            // Verify that we actually received a Scrub() call:
            ravenClient.LogScrubber.Received().Scrub(Arg.Any <string>());
        }
コード例 #5
0
        public void CaptureMessage_ScrubberIsInvoked()
        {
            string message = Guid.NewGuid().ToString("n");

            IRavenClient ravenClient = new RavenClient(TestHelper.DsnUri);
            ravenClient.LogScrubber = Substitute.For<IScrubber>();
            ravenClient.LogScrubber.Scrub(Arg.Any<string>())
                       .Returns(c =>
                       {
                           string json = c.Arg<string>();
                           Assert.That(json, Is.StringContaining(message));
                           return json;
                       });

            string id = ravenClient.CaptureMessage(message);
            Guid guid = Guid.Parse(id);
            Assert.That(guid, Is.Not.Null);

            // Verify that we actually received a Scrub() call:
            ravenClient.LogScrubber.Received().Scrub(Arg.Any<string>());
        }