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 }); }
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 }); }