• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

Erros de registro

Sintaxe

Objetivo-c

recordError:(NSError* _Nonnull)error attributes:(NSDictionary* _Nullable)attributes;

Swift [#swift]

NewRelic.recordError(error: $Error, map $eventAttributes);

Descrição [#description]

Você pode usar a chamada de API recordError para análise de falhas. Revise o evento capturado para ajudar você a entender com que frequência seu aplicativo gera erros e sob quais condições. Além de qualquer atributo personalizado que você adicionou, o evento também terá sessão associada atributo.

Essa API pega uma instância de um erro e um dicionário de atributo opcional e cria um evento recordHandledException . Você pode visualizar dados de eventos na interface do usuário em locais como a páginaHandled exceptions e a trilhaCrash events . Você também pode consultar esses dados com NRQL e mapeá-los no painel do New Relic.

Parâmetro [#parameters]

Objetivo-c

Parâmetro

Tipo

Descrição

$error, error

error, NSerror

Obrigatório. A exceção a ser registrada.

attributes, $eventAttributes

NSDictionary, [AnyHashable, Any]?

Opcional. Dicionário de atributo que contextualiza.

Exemplos [#examples]

Objective-C

Aqui está um exemplo de registro de um erro simples:

@try {
@throw [NSException exceptionWithName:@"versionException"
reason:@"App version no longer supported"
userInfo:nil];
} @catch (NSException* e) {
[NewRelic recordHandledException:e];
}

Aqui está outro exemplo de registro de um erro com um dicionário:

[NSJSONSerialization JSONObjectWithData:data
options:opt
error:error];
if (error) {
[NewRelic recordError:error withAttributes:@{@"int": @1,
@"Test Group" : @"A | B"}];
}

Swift [#swift]

Aqui está um exemplo de registro de um erro simples:

do {
try method()
} catch {
NewRelic.recordError(error)
}

Aqui está outro exemplo de registro de um erro com um dicionário:

do {
try method()
} catch {
NewRelic.recordError(error, attributes: [ "int" : 1, "Test Group" : "A | B" ])
}

Sintaxe

recordError(options: { name: string; message: string; stack: string; isFatal: boolean; }) => void

Descrição [#description]

Registra erros de JavaScript/TypeScript para Ionic Capacitor. Certifique-se de adicionar este método ao manipulador de erros global da sua framework.

Parâmetro [#parameters]

Objetivo-c

Parâmetro

Tipo

Descrição

options

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

Obrigatório. Um objeto que contém os detalhes do erro.

Exemplo [#example]

try {
throw new Error('Example error message');
} catch (e: any) {
NewRelicCapacitorPlugin.recordError({
name: e.name,
message: e.message,
stack: e.stack,
isFatal: false,
});
}

Sintaxe

recordError(err: Error) : void;

Descrição [#description]

Registra erros de JavaScript para Cordova. Certifique-se de adicionar este método ao manipulador de erros da framework que você está usando.

Exemplos [#examples]

Angular

Angular 2+ expõe uma classe ErrorHandler para tratar erros. Você pode implementar o New Relic estendendo esta classe da seguinte maneira:

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

Então, você precisará informar o Angular 2 sobre esse novo manipulador de erros listando substituições para o provedor em app.module.ts:

@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule],
providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },{provide: ErrorHandler, useClass: GlobalErrorHandler}],
bootstrap: [AppComponent],
})

Reagir

O React 16+ adicionou componentes de limite de erro que capturam erros que surgem de componentes filhos. Eles são muito úteis para rastrear erros e reportar erros à 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.
}
}

Restaurado

Você pode criar Redux Middleware e aplicá-lo em sua loja. Isso permitirá que você relate quaisquer erros à 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;

Certifique-se de que o middleware seja aplicado ao criar sua loja:

import { createStore, applyMiddleware } from "redux"
import NewRelicLogger from "./middleware/NewRelicLogger"
const store = createStore(todoApp, applyMiddleware(NewRelicLogger));

Vista

O Vue possui um manipulador de erros global que relata erros de JavaScript nativos e passa na instância do Vue. Este manipulador será útil para relatar erros ao 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);
}

Sintaxe

recordError(error, StackTrace.current, attributes: attributes);

Descrição [#description]

Você pode registrar exceções não fatais usando o método recordError com atributo personalizado.

Exemplo [#example]

try {
some_code_that_throws_error();
} catch (ex) {
NewrelicMobile.instance
.recordError(error, StackTrace.current, attributes: attributes);
}

Sintaxe

recordError(e: string|error): void;

Descrição [#description]

Registra erros de JavaScript para React Native.

Exemplo [#example]

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

Sintaxe

recordError(FString errorMessage,TMap <FString, FString> errorAttributes);

Descrição [#description]

Registra erros para Unreal com Map parâmetro .

Parâmetro

Tipo

Descrição

errorMessage

FString

Obrigatório. A exceção a ser registrada.

$errorAttributes

Map of String, String

Opcional. Um mapa de atributo a ser associado à exceção.

Exemplo [#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.