예제 #1
0
        public LogModule(IRavenClient ravenClient)
        {
            Get["/log"] = _ =>
            {
                var messageId = ravenClient.CaptureMessage("Hello world !!!");
                return(View["log.html", new { MessageId = messageId }]);
            };

            Get["/log-async", runAsync : true] = async(_, token) =>
            {
                var httpClient = new HttpClient();
                var response   = await httpClient.GetAsync("http://www.google.com");

                response.EnsureSuccessStatusCode();

                var result = await response.Content.ReadAsStringAsync();

                #if (!net40) && (!net35)
                var messageId = await ravenClient.CaptureMessageAsync("Hello world!!!");
                #else
                var messageId = ravenClient.CaptureMessage("Hello world!!!");
                #endif

                return(View["log.html", new { MessageId = messageId }]);
            };
        }
예제 #2
0
        public LogModule(IRavenClient ravenClient)
        {
            Get["/log"] = _ =>
            {
                var messageId = ravenClient.CaptureMessage("Hello world !!!");
                return View["log.html", new { MessageId = messageId }];
            };

            Get["/log-async", runAsync : true] = async (_, token) =>
            {
                var httpClient = new HttpClient();
                var response = await httpClient.GetAsync("http://www.google.com");

                response.EnsureSuccessStatusCode();

                var result = await response.Content.ReadAsStringAsync();
            #if (!net40)
                var messageId = await ravenClient.CaptureMessageAsync("Hello world!!!");
            #else
                var messageId = ravenClient.CaptureMessage("Hello world!!!");
            #endif

                return View["log.html", new { MessageId = messageId }];
            };
        }
예제 #3
0
        public LogModule(IRavenClient ravenClient)
        {
            Get["/log"] = _ =>
            {
                var messageId = ravenClient.CaptureMessage("Hello world !!!");
                return(View["log.html", new { MessageId = messageId }]);
            };

            #if (!NET40) && (!NET35)
            Get["/log-async", runAsync : true] = async(_, token) =>
            #else
            Get["/log-async"] = (_) =>
            #endif
            {
                #if (!NET40) && (!NET35)
                var messageId = await ravenClient.CaptureMessageAsync("Hello world!!!");
                #else
                var messageId = ravenClient.CaptureMessage("Hello world!!!");
                #endif

                return(View["log.html", new { MessageId = messageId }]);
            };
        }
예제 #4
0
        static void Run(IRavenClient client)
        {
            client.Capture(new SentryEvent(new SentryMessage("Hello world 1900")));

            client.CaptureMessage(new SentryMessage("Hello world IFNOOOOOO"));

            try
            {
                DivideByZero();
            }
            catch (Exception exception)
            {
                client.Capture(new SentryEvent(exception));
            }
        }
예제 #5
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 (loggingEvent.ExceptionObject != null)
            {
                // We should capture buth the exception and the message passed
                RavenClient.CaptureException(exception,
                                             new SentryMessage(loggingEvent.RenderedMessage),
                                             level,
                                             tags: tags,
                                             extra: extra);
            }
            else if (loggingEvent.MessageObject is Exception)
            {
                // We should capture the exception with no custom message
                RavenClient.CaptureException(loggingEvent.MessageObject as Exception,
                                             null,
                                             level,
                                             tags: tags,
                                             extra: extra);
            }
            else
            {
                // Just capture message
                var message = loggingEvent.RenderedMessage;

                if (message != null)
                {
                    RavenClient.CaptureMessage(message, level, tags, extra);
                }
            }
        }