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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

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);
Screenshot of the Unreal Engine Plugin Record Error
Copyright © 2024 New Relic Inc.

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