• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

Errores de registro

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 panel de New Relic.

Parámetros [#parameters]

C objetivo

Parámetro

Tipo

Descripción

$error, error

error, NSerror

Requerido. La excepción que debe registrarse.

attributes, $eventAttributes

NSDictionary, [AnyHashable, Any]?

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

Descripció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

options

{ name: string; message: string; stack: string; isFatal: boolean; }

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): void;

Descripción [#description]

Registra errores de JavaScript para React Native.

Ejemplo [#example]

try {
var foo = {};
foo.bar();
} catch(e) {
NewRelic.recordError(e);
}

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

errorMessage

FString

Requerido. La excepción que debe registrarse.

$errorAttributes

Map of String, String

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);
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.