Syntaxe
Objectif-C
recordError:(NSError* _Nonnull)error attributes:(NSDictionary* _Nullable)attributes;
Swift [#swift]
NewRelic.recordError(error: $Error, map $eventAttributes);
Description [#description]
Vous pouvez utiliser l'appel d'API recordError
pour l'analyse des crashs. Passez en revue l’événement capturé pour vous aider à comprendre à quelle fréquence votre application génère des erreurs et dans quelles conditions. En plus de tout attribut personnalisé que vous avez ajouté, l'événement aura également un attribut de session associé.
Cette API prend une instance d'une erreur et un dictionnaire d'attributs facultatif, puis crée un événement recordHandledException
. Vous pouvez afficher les données d'événement dans l'interface utilisateur dans des endroits tels que la pageHandled exceptions et le parcoursCrash events . Vous pouvez également interroger ces données avec NRQL et les représenter graphiquement dans les dashboards New Relic.
Paramètres [#parameters]
Objectif-C
paramètres | Type | Description |
---|---|---|
|
| Requis. L'exception à enregistrer. |
|
| Facultatif. Dictionnaire des attributs qui donnent un contexte. |
Exemples [#examples]
Objective-C
Voici un exemple d'enregistrement d'une erreur simple :
@try { @throw [NSException exceptionWithName:@"versionException" reason:@"App version no longer supported" userInfo:nil];} @catch (NSException* e) { [NewRelic recordHandledException:e];}
Voici un autre exemple d’enregistrement d’une erreur avec un dictionnaire :
[NSJSONSerialization JSONObjectWithData:data options:opt error:error];if (error) { [NewRelic recordError:error withAttributes:@{@"int" : @1, @"Test Group" : @"A | B"}];}
Swift [#swift]
Voici un exemple d'enregistrement d'une erreur simple :
do { try method()} catch { NewRelic.recordError(error)}
Voici un autre exemple d’enregistrement d’une erreur avec un dictionnaire :
do { try method()} catch { NewRelic.recordError(error, attributes: [ "int" : 1, "Test Group" : "A | B" ])}
Syntaxe
recordError(options: { name: string; message: string; stack: string; isFatal: boolean; }) => void
Description [#description]
Enregistre les erreurs JavaScript/TypeScript pour Ionic Capacitor. Assurez-vous d'ajouter cette méthode au gestionnaire d'erreurs global de votre framework.
Paramètres [#parameters]
Objectif-C
paramètres | Type | Description |
---|---|---|
|
| Requis. Un objet qui contient les détails de l'erreur. |
Exemple [#example]
try { throw new Error('Example error message');} catch (e: any) { NewRelicCapacitorPlugin.recordError({ name: e.name, message: e.message, stack: e.stack, isFatal: false, });}
Syntaxe
recordError(err: Error) : void;
Description [#description]
Enregistre les erreurs JavaScript pour Cordova. Assurez-vous d’ajouter cette méthode au gestionnaire d’erreurs du framework que vous utilisez.
Exemples [#examples]
Angulaire
Angular 2+ expose une classe ErrorHandler pour gérer les erreurs. Vous pouvez implémenter New Relic en étendant cette classe comme suit :
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); }}
Ensuite, vous devrez informer Angular 2 de ce nouveau gestionnaire d'erreurs en répertoriant les remplacements pour le fournisseur dans app.module.ts :
@NgModule({ declarations: [AppComponent], imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule], providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },{provide: ErrorHandler, useClass: GlobalErrorHandler}], bootstrap: [AppComponent],})
React
React 16+ a ajouté des composants de limite d'erreur qui détectent les erreurs qui remontent à partir des composants enfants. Ils sont très utiles pour suivre les erreurs et signaler les erreurs à 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
Vous pouvez créer Redux Middleware et l'appliquer à votre boutique. Cela vous permettra de signaler toute erreur à 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;
Assurez-vous que le middleware est appliqué lors de la création de votre boutique :
import { createStore, applyMiddleware } from "redux"import NewRelicLogger from "./middleware/NewRelicLogger"
const store = createStore(todoApp, applyMiddleware(NewRelicLogger));
Vue
Vue dispose d'un gestionnaire d'erreurs global qui signale les erreurs JavaScript natives et les transmet à l'instance Vue. Ce gestionnaire sera utile pour signaler les erreurs à 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);}
Syntaxe
recordError(error, StackTrace.current, attributes: attributes);
Description [#description]
Vous pouvez enregistrer des exceptions non fatales en utilisant la méthode recordError
avec l'attribut personnalisé.
Exemple [#example]
try { some_code_that_throws_error();} catch (ex) { NewrelicMobile.instance .recordError(error, StackTrace.current, attributes: attributes);}
Syntaxe
recordError(e: string|error): void;
Description [#description]
Enregistre les erreurs JavaScript pour React Native.
Exemple [#example]
try { var foo = {}; foo.bar();} catch(e) { NewRelic.recordError(e);}
Syntaxe
recordError(FString errorMessage,TMap <FString, FString> errorAttributes);
Description [#description]
Enregistre les erreurs pour Unreal avec les paramètres de carte.
paramètres | Type | Description |
---|---|---|
|
| Requis. L'exception à enregistrer. |
|
| Facultatif. Une carte d’attribut à associer à l’exception. |
Exemple [#example]
#include "NewRelicBPLibrary.h"
TMap<FString, FString> errorsMap;errorsMap.Add("place", TEXT("Robots"));errorsMap.Add("user", TEXT("Nisarg"));UNewRelicBPLibrary::recordError(TEXT("Error Message"), errorsMap);
