Sintaxis
C objetivo
recordError:(NSError* _Nonnull)error attributes:(NSDictionary* _Nullable)attributes;Swift [#swift]
NewRelic.recordError(error: $Error, map $eventAttributes);Descripción [#description]
Puede utilizar la llamada API recordError para el análisis de fallos. Revise el evento capturado para ayudarle a comprender con qué frecuencia su aplicación genera errores y bajo qué condiciones. Además de cualquier atributo personalizado que hayas agregado, el evento también tendrá asociado un atributo de sesión.
Esta API toma una instancia de un error y un diccionario de atributos opcional, luego crea un evento recordHandledException . Puede ver los datos del evento en laUI en lugares como la páginaHandled exceptions y la rutaCrash events . También puede consultar estos datos con NRQL y registrarlos en el dashboard de New Relic.
Parámetros [#parameters]
C objetivo
Parámetro | Tipo | Descripción |
|---|---|---|
|
| Requerido. La excepción que debe registrarse. |
|
| Opcional. Diccionario de atributos que dan contexto. |
Ejemplos [#examples]
Objective-C
A continuación se muestra un ejemplo de grabación de un error simple:
@try { @throw [NSException exceptionWithName:@"versionException" reason:@"App version no longer supported" userInfo:nil];} @catch (NSException* e) { [NewRelic recordHandledException:e];}Aquí hay otro ejemplo de cómo registrar un error con un diccionario:
[NSJSONSerialization JSONObjectWithData:data options:opt error:error];if (error) { [NewRelic recordError:error withAttributes:@{@"int" : @1, @"Test Group" : @"A | B"}];}Swift [#swift]
A continuación se muestra un ejemplo de grabación de un error simple:
do { try method()} catch { NewRelic.recordError(error)}Aquí hay otro ejemplo de cómo registrar un error con un diccionario:
do { try method()} catch { NewRelic.recordError(error, attributes: [ "int" : 1, "Test Group" : "A | B" ])}Sintaxis
recordError(options: { name: string; message: string; stack: string; isFatal: boolean; }) => voidDescripción [#description]
Registra errores de JavaScript/TypeScript para Ionic Capacitor. Asegúrese de agregar este método al controlador de errores global de su framework.
Parámetros [#parameters]
C objetivo
Parámetro | Tipo | Descripción |
|---|---|---|
|
| Requerido. Un objeto que contiene los detalles del error. |
Ejemplo [#example]
try { throw new Error('Example error message');} catch (e: any) { NewRelicCapacitorPlugin.recordError({ name: e.name, message: e.message, stack: e.stack, isFatal: false, });}Sintaxis
recordError(err: Error) : void;Descripción [#description]
Registra errores de JavaScript para Cordova. Asegúrese de agregar este método al controlador de errores del framework que está utilizando.
Ejemplos [#examples]
Angular
Angular 2+ expone una clase ErrorHandler para manejar errores. Puede implementar New Relic extendiendo esta clase de la siguiente manera:
import { ErrorHandler, Injectable } from '@angular/core';import { NewRelic } from "@awesome-cordova-plugins/newrelic";
@Injectable()export class GlobalErrorHandler extends ErrorHandler { constructor() { super(); } handleError(error: any): void { NewRelic.recordError(error); super.handleError(error); }}Luego, deberá informar a Angular 2 sobre este nuevo controlador de errores enumerando las anulaciones para el proveedor en app.module.ts:
@NgModule({ declarations: [AppComponent], imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule], providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },{provide: ErrorHandler, useClass: GlobalErrorHandler}], bootstrap: [AppComponent],})Reaccionar
React 16+ ha agregado componentes de límite de error que detectan errores que surgen de los componentes secundarios. Estos son muy útiles para rastrear errores e informar errores a New Relic.
import React, { Component } from "react";import { NewRelic } from "@awesome-cordova-plugins/newrelic";
export class ErrorBoundary extends Component { componentDidCatch(error, errorInfo) { if (errorInfo && errorInfo.componentStack) { // Optional line to print out the component stack for debugging. console.log(errorInfo.componentStack); }
NewRelic.recordError(error); this.setState({ error }); }
render() { // Render error messages or other components here. }}Redux
Puede crear Redux Middleware y aplicarlo a su tienda. Esto le permitirá informar cualquier error a New Relic.
import { NewRelic } from "@awesome-cordova-plugins/newrelic";
const NewRelicLogger = store => next => action => { try { // You can log every action as a custom event NewRelic.recordCustomEvent("eventType", "eventName", action); return next(action) } catch (err) {
// NewRelic.recordBreadcrumb("NewRelicLogger error", store.getState());
// Record the JS error to New Relic NewRelic.recordError(err); }}
export default NewRelicLogger;Asegúrese de que se aplique el middleware al crear su tienda:
import { createStore, applyMiddleware } from "redux"import NewRelicLogger from "./middleware/NewRelicLogger"
const store = createStore(todoApp, applyMiddleware(NewRelicLogger));Vista
Vue tiene un controlador de errores global que informa errores de JavaScript nativo y los pasa en la instancia de Vue. Este controlador será útil para informar errores a New Relic.
import { NewRelic } from "@awesome-cordova-plugins/newrelic";
Vue.config.errorHandler = (err, vm, info) => { // Record properties passed to the component if there are any if(vm.$options.propsData) { NewRelic.recordBreadcrumb("Props passed to component", vm.$options.propsData); }
// Get the lifecycle hook, if present let lifecycleHookInfo = 'none'; if (info){ lifecycleHookInfo = info; }
// Record a breadcrumb with more details such as component name and lifecycle hook NewRelic.recordBreadcrumb("Vue Error", { 'componentName': vm.$options.name, 'lifecycleHook': lifecycleHookInfo })
// Record the JS error to New Relic NewRelic.recordError(error);}Sintaxis
recordError(error, StackTrace.current, attributes: attributes);Descripción [#description]
Puede registrar excepciones no fatales utilizando el método recordError con atributo personalizado.
Ejemplo [#example]
try { some_code_that_throws_error();} catch (ex) { NewrelicMobile.instance .recordError(error, StackTrace.current, attributes: attributes);}Sintaxis
recordError(e: string|Error, isFatal?: boolean, attributes?: object): void;Requisitos [#react-requirements]
- Agente de New Relic React Native instalado y configurado.
- Llame a
NewRelic.setJSAppVersion()al inicio de su aplicación para que se puedan capturar los errores de JavaScript. - El registro de errores como eventos
MobileJSError, el argumentoisFataly el argumentoattributesrequieren el agente React Native versión 1.9.0 o superior. Las versiones anteriores registran estos errores como eventosMobileHandledException.
Descripción [#react-description]
Utilice esta llamada para registrar los errores de JavaScript manejados u otros errores misceláneos de la aplicación. Esto es útil cuando ha detectado y manejado un error, pero aún desea identificarlo sin interrumpir el funcionamiento de la aplicación.
Estos errores se registran como eventosMobileJSError . Además de cualquier atributo personalizado que agregue, los eventos también incluyen atributos de sesión asociados. Puede ver estos datos en la UI , consultarlos con NRQL y registrarlos en el dashboard de New Relic.
Parámetros [#react-parameters]
Parámetro | Tipo | Descripción |
|---|---|---|
|
| Obligatorio. El error que se registrará. |
|
| Opcional. Si el error es fatal. El valor predeterminado es |
|
| Opcional. Un objeto de pares de nombre/valor de atributos personalizados que le dan al error contexto adicional. El valor predeterminado es |
Ejemplos [#react-examples]
Grabar un error controlado
Aquí hay un ejemplo de cómo registrar un error capturado sin interrumpir su aplicación:
try { var foo = {}; foo.bar();} catch (e) { NewRelic.recordError(e);}Registrar un error de un rechazo de promesa
Las promesas facilitan pasar por alto los errores asincrónicos. Este ejemplo reporta una promesa rechazada a New Relic para que no se pase por alto:
fetch('https://api.example.com/data') .then(response => response.json()) .catch(error => { // Report the unhandled rejection to New Relic NewRelic.recordError(error); });Grabar un error fatal
Pase true como segundo argumento para marcar el error como fatal:
try { criticalOperation();} catch (e) { NewRelic.recordError(e, true);}Grabar un error con atributos personalizados
Pase un objeto de atributos como tercer argumento para agregar contexto al error:
try { var foo = {}; foo.bar();} catch (e) { NewRelic.recordError(e, false, { screen: 'Checkout', 'Test Group': 'A | B' });}Sintaxis
recordError(FString errorMessage,TMap <FString, FString> errorAttributes);Descripción [#description]
Registra errores para Unreal con el parámetro Map.
Parámetro | Tipo | Descripción |
|---|---|---|
|
| Requerido. La excepción que debe registrarse. |
|
| Opcional. Un mapa de atributo que se asociará con la excepción. |
Ejemplo [#example]
#include "NewRelicBPLibrary.h"
TMap<FString, FString> errorsMap;errorsMap.Add("place", TEXT("Robots"));errorsMap.Add("user", TEXT("Nisarg"));UNewRelicBPLibrary::recordError(TEXT("Error Message"), errorsMap);