• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

오류 기록

통사론

목표-c

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

빠른 [#swift]

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

설명 [#description]

충돌 분석에 recordError API 호출을 사용할 수 있습니다. 캡처된 이벤트를 검토하여 앱에서 오류가 발생하는 빈도와 조건을 이해하는 데 도움이 됩니다. 추가한 사용자 정의 속성 외에도 이벤트에는 연결된 세션 속성 도 있습니다.

이 API는 오류 인스턴스와 선택적 속성 사전을 가져온 다음 recordHandledException 이벤트를 생성합니다. 이벤트 데이터는 다음에서 볼 수 있습니다. Handled exceptions [처리된 예외] 페이지Crash events [충돌 이벤트] 추적 과 같은 위치의 UI입니다. 또한 NRQL을 사용하여 이 데이터를 쿼리하고 New Relic 대시보드에 차트로 표시할 수도 있습니다.

매개변수 [#parameters]

목표-c

매개변수

유형

설명

$error, error

error, NSerror

필수의. 기록할 예외입니다.

attributes, $eventAttributes

NSDictionary, [AnyHashable, Any]?

선택 과목. 컨텍스트를 제공하는 속성 사전.

[#examples]

오브젝티브-C

다음은 간단한 오류 기록의 예입니다.

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

다음은 사전으로 오류를 기록하는 또 다른 예입니다.

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

빠른 [#swift]

다음은 간단한 오류 기록의 예입니다.

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

다음은 사전으로 오류를 기록하는 또 다른 예입니다.

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

통사론

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

설명 [#description]

Ionic Capacitor에 대한 JavaScript/TypeScript 오류를 기록합니다. 프레임워크의 전역 오류 처리기에 이 메서드를 추가해야 합니다.

매개변수 [#parameters]

목표-c

매개변수

유형

설명

options

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

필수의. 오류 세부 정보가 포함된 개체입니다.

예시 [#example]

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

통사론

recordError(err: Error) : void;

설명 [#description]

Cordova에 대한 JavaScript 오류를 기록합니다. 사용 중인 프레임워크의 오류 처리기에 이 메서드를 추가해야 합니다.

[#examples]

모난

Angular 2+는 오류를 처리하기 위해 ErrorHandler 클래스를 노출합니다. 다음과 같이 이 클래스를 확장하여 New Relic을 구현할 수 있습니다.

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

그런 다음 app.module.ts에서 공급자에 대한 재정의를 나열하여 이 새로운 오류 처리기에 대해 Angular 2에 알려야 합니다.

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

반응하다

React 16+에는 하위 구성 요소에서 발생하는 오류를 포착하는 오류 경계 구성 요소가 추가되었습니다. 이는 오류를 추적하고 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 미들웨어를 생성하여 상점에 적용할 수 있습니다. 이를 통해 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;

상점을 만들 때 미들웨어가 적용되었는지 확인하십시오.

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

Vue에는 기본 JavaScript 오류를 보고하고 Vue 인스턴스를 전달하는 전역 오류 처리기가 있습니다. 이 처리기는 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);
}

통사론

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

설명 [#description]

사용자 정의 속성과 함께 recordError 메소드를 사용하여 치명적이지 않은 예외를 등록할 수 있습니다.

예시 [#example]

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

통사론

recordError(e: string|error): void;

설명 [#description]

React Native에 대한 JavaScript 오류를 기록합니다.

예시 [#example]

try {
var foo = {};
foo.bar();
} catch(e) {
NewRelic.recordError(e);
}
Copyright © 2024 New Relic Inc.

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