Exemplo n.º 1
0
        public void CaptureException(Exception exception, string culprit = null, bool isHandled = false)
        {
            var capturedCulprit = string.IsNullOrEmpty(culprit) ? "PublicAPI-CaptureException" : culprit;
            var error           = new Error.Err
            {
                Culprit   = capturedCulprit,
                Exception = new CapturedException
                {
                    Message = exception.Message,
                    Type    = exception.GetType().FullName,
                    Handled = isHandled
                },
                Transaction = new Error.Err.Trans
                {
                    Id = Id
                }
            };

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

            error.Context = Context;
            _sender.QueueError(new Error {
                Errors = new List <Error.Err> {
                    error
                }, Service = Service
            });
        }
Exemplo n.º 2
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
            });
        }