Esempio n. 1
0
        public void CaptureError(string message, string culprit, StackFrame[] frames)
        {
            var capturedException = new CapturedException
            {
                Message = message
            };
            var error = new Error.ErrorDetail
            {
                Culprit     = culprit,
                Exception   = capturedException,
                Transaction = new Error.ErrorDetail.TransactionReference
                {
                    Id = Id
                }
            };

            if (frames != null)
            {
                capturedException.StacktTrace
                    = StacktraceHelper.GenerateApmStackTrace(frames, _logger, "failed capturing stacktrace");
            }

            error.Context = Context;
            _sender.QueueError(new Error {
                Errors = new List <IErrorDetail> {
                    error
                }, Service = Service
            });
        }
Esempio n. 2
0
        public void CaptureException(Exception exception, string culprit = null, bool isHandled = false)
        {
            var capturedCulprit = string.IsNullOrEmpty(culprit) ? "PublicAPI-CaptureException" : culprit;

            var capturedException = new CapturedException
            {
                Message = exception.Message,
                Type    = exception.GetType().FullName,
                Handled = isHandled
            };

            var error = new Error.ErrorDetail
            {
                Culprit     = capturedCulprit,
                Exception   = capturedException,
                Transaction = new Error.ErrorDetail.TransactionReference
                {
                    Id = Id
                }
            };

            if (!string.IsNullOrEmpty(exception.StackTrace))
            {
                capturedException.StacktTrace
                    = StacktraceHelper.GenerateApmStackTrace(new StackTrace(exception, true).GetFrames(), _logger,
                                                             "failed capturing stacktrace");
            }

            error.Context = Context;
            _sender.QueueError(new Error {
                Errors = new List <IErrorDetail> {
                    error
                }, Service = Service
            });
        }
Esempio n. 3
0
        public void CaptureException(Exception exception, string culprit = null, bool isHandled = false, string parentId = null)
        {
            var capturedCulprit = string.IsNullOrEmpty(culprit) ? "PublicAPI-CaptureException" : culprit;

            var ed = new CapturedException
            {
                Message    = exception.Message,
                Type       = exception.GetType().FullName,
                Handled    = isHandled,
                Stacktrace = StacktraceHelper.GenerateApmStackTrace(exception, _logger,
                                                                    $"{nameof(Transaction)}.{nameof(CaptureException)}"),
            };

            _sender.QueueError(new Error(ed, TraceId, Id, parentId ?? Id)
            {
                Culprit = capturedCulprit, Context = Context
            });
        }
Esempio n. 4
0
        public void CaptureError(string message, string culprit, StackFrame[] frames, string parentId = null)
        {
            var capturedCulprit = string.IsNullOrEmpty(culprit) ? "PublicAPI-CaptureException" : culprit;

            var ed = new CapturedException()
            {
                Message = message,
            };

            if (frames != null)
            {
                ed.Stacktrace
                    = StacktraceHelper.GenerateApmStackTrace(frames, _logger, "failed capturing stacktrace");
            }

            _sender.QueueError(new Error(ed, TraceId, Id, parentId ?? Id)
            {
                Culprit = capturedCulprit, Context = Context
            });
        }
Esempio n. 5
0
        public void CaptureError(string message, string culprit, StackFrame[] frames, string parentId = null)
        {
            var capturedCulprit = string.IsNullOrEmpty(culprit) ? "PublicAPI-CaptureException" : culprit;

            var capturedException = new CapturedException()
            {
                Message = message,
            };

            if (frames != null)
            {
                capturedException.Stacktrace
                    = StacktraceHelper.GenerateApmStackTrace(frames, _logger, $"{nameof(Span)}.{nameof(CaptureError)}");
            }

            _payloadSender.QueueError(
                new Error(capturedException, TraceId, Id, parentId ?? Id)
            {
                Culprit = capturedCulprit                                                                             /*, Context = Context */
            });
        }
Esempio n. 6
0
 public Error(CapturedException capturedException, string traceId, string transactionId, string parentId) : this(capturedException) =>
     (TraceId, TransactionId, ParentId) = (traceId, transactionId, parentId);