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

사용자의 편의를 위해 제공되는 기계 번역입니다.

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

문제 신고

모바일 로그

API 사용하여 모바일 앱 로그를 뉴렐릭으로 보낼 수 있습니다. 귀하의 로그는 분석할 수 있는 한 곳에 보관됩니다.

모바일 로그 활성화

기본적으로 당사 모바일 에이전트는 로그를 수집하지 않습니다. 모바일 로그를 활성화하려면:

  1. one.newrelic.com > All capabilities 으)로 이동합니다.
  2. Mobile 을(를) 클릭합니다.
  3. 모바일 앱을 클릭하세요.
  4. Settings 아래의 왼쪽 창에서 Application 클릭합니다.
  5. Mobile Logs 을 켭니다.
  6. Save 을(를) 클릭합니다.

로그 구성

샘플링 속도 또는 로그인 레벨을 구성하려면:

  1. 뉴렐릭에서 모바일 앱으로 이동합니다.
  2. Settings 아래의 왼쪽 창에서 Application 클릭합니다.
  3. 샘플링 속도를 변경하려면 Sample rate of total sessions [총 세션의 샘플링 속도] 아래 필드에서 새 값을 선택합니다.
  4. 로그인 레벨을 변경하려면 드롭다운 메뉴의 Logs verbosity [로그인 세부 정보] 아래에서 원하는 로그인 레벨을 선택하세요. 디버그 로그 레벨은 에이전트 디버깅 로그를 확인하려는 경우에만 사용해야 합니다.

뉴렐릭에서 로그인 보기

UI에서 로그를 보려면:

  1. 모바일 앱으로 이동합니다.
  2. 왼쪽 창의 Triage 아래에서 Logs 클릭합니다.

모바일 로깅이 일부 지연될 수 있습니다.

  • 로그가 Logs 페이지에 나타나려면 최대 15분이 걸립니다.
  • 로그 토글, 샘플링 속도, 로그 레벨을 변경하는 데 최대 15분이 소요됩니다. 이 변경 사항은 모바일 애플리케이션에 반영됩니다.

API를 사용하여 로그 캡처

아래 API는 애플리케이션에서 다양한 유형의 정보와 이벤트를 캡처하기 위한 포괄적인 로깅 방법 세트를 제공합니다. 이러한 방법을 사용하면 다양한 심각도 수준(정보, 경고, 디버그, 자세한 정보, 오류)으로 메시지를 로깅하고, 사용자 지정 로깅 수준과 throwables(예외) 및 속성과 같은 추가 컨텍스트를 로깅할 수 있습니다.

로깅 API 사용할 때 에이전트 디버깅 로그를 보려면 디버그 로그 레벨만 사용해야 한다는 점을 명심하세요.

통사론

자바

NewRelic.logInfo(String message)
NewRelic.logWarning(String message)
NewRelic.logDebug(String message)
NewRelic.logVerbose(String message)
NewRelic.logError(String message)
NewRelic.log(LogLevel logLevel, String message)
NewRelic.logThrowable(LogLevel logLevel, String message, Throwable throwable)
NewRelic.logAttributes(Map<String, Object> attributes)
NewRelic.logAll(Throwable throwable, Map<String, Object> attributes)

코틀린 [#kotlin]

NewRelic.logInfo(String message)
NewRelic.logWarning(String message)
NewRelic.logDebug(String message)
NewRelic.logVerbose(String message)
NewRelic.logError(String message)
NewRelic.log(LogLevel logLevel, String message)
NewRelic.logThrowable(LogLevel logLevel, String message, Throwable throwable)
NewRelic.logAttributes(Map<String, Object> attributes)
NewRelic.logAll(Throwable throwable, Map<String, Object> attributes)

예시 [#example]

자바 [#java]

NewRelic.logInfo("This is an info message");
// Log warning
NewRelic.logWarning("This is a warning message");
// Log debug
NewRelic.logDebug("This is a debug message");
// Log verbose
NewRelic.logVerbose("This is a verbose message");
// Log error
NewRelic.logError("This is an error message");
// Log with specific log level
NewRelic.log(LogLevel.INFO, "This is a log message with INFO level");
// Log throwable with specific log level
try {
throw new Exception("This is a test exception");
} catch (Exception e) {
NewRelic.logThrowable(LogLevel.ERROR, "Exception occurred", e);
}
// Log attributes
Map<String, Object> attributes = new HashMap<>();
attributes.put("key1", "value1");
attributes.put("key2", 123);
NewRelic.logAttributes(attributes);
// Log all with throwable and attributes
try {
throw new Exception("This is another test exception");
} catch (Exception e) {
NewRelic.logAll(e, attributes);
}

코틀린 [#kotlin]

NewRelic.logInfo("This is an info message")
// Log warning
NewRelic.logWarning("This is a warning message")
// Log debug
NewRelic.logDebug("This is a debug message")
// Log verbose
NewRelic.logVerbose("This is a verbose message")
// Log error
NewRelic.logError("This is an error message")
// Log with specific log level
NewRelic.log(LogLevel.INFO, "This is a log message with INFO level")
// Log throwable with specific log level
try {
throw Exception("This is a test exception")
} catch (e: Exception) {
NewRelic.logThrowable(LogLevel.ERROR, "Exception occurred", e)
}
// Log attributes
val attributes = mapOf("key1" to "value1", "key2" to 123)
NewRelic.logAttributes(attributes)

통사론

목표-c

(void) logInfo:(NSString* __nonnull) message;
(void) logError:(NSString* __nonnull) message;
(void) logVerbose:(NSString* __nonnull) message;
(void) logWarning:(NSString* __nonnull) message;
(void) logAudit:(NSString* __nonnull) message;
(void) logDebug:(NSString* __nonnull) message;
(void) log:(NSString* __nonnull) message level:(NRLogLevels)level;
(void) logAll:(NSDictionary* __nonnull) dict;
(void) logAttributes:(NSDictionary* __nonnull) dict;
(void) logErrorObject:(NSError* __nonnull) error;

빠른 [#swift]

func logInfo(_ message: String)
func logError(_ message: String)
func logVerbose(_ message: String)
func logWarning(_ message: String)
func logAudit(_ message: String)
func logDebug(_ message: String)
func log(_ message: String, level: NRLogLevels)
func logAll(_ dict: [String: Any])
func logAttributes(_ dict: [String: Any])
func logErrorObject(_ error: NSError)

예시 [#example]

목표-c [#objective-c]

[NewRelic logInfo:@"This is an info message"];
[NewRelic logError:@"This is an error message"];
[NewRelic logVerbose:@"This is a verbose message"];
[NewRelic logWarning:@"This is a warning message"];
[NewRelic logAudit:@"This is an audit message"];
[NewRelic logDebug:@"This is a debug message"];
[NewRelic log:@"This is a custom log level message" level:NRLogLevelsCustom];
NSDictionary *logDict = @{@"key1": @"value1", @"key2": @"value2"};
[NewRelic logAll:logDict];
NSDictionary *attributesDict = @{@"attribute1": @"value1", @"attribute2": @"value2"};
[NewRelic logAttributes:attributesDict];
NSError *error = [NSError errorWithDomain:@"com.example" code:100 userInfo:@{NSLocalizedDescriptionKey: @"This is an error description"}];
[NewRelic logErrorObject:error];

빠른 [#swift]

NewRelic.logError("Encountered error=error=\(error.localizedDescription).")
NewRelic.logWarning("Warning text.")
NewRelic.logInfo("Info text.")
NewRelic.logVerbose("NewRelic.start was called.")
NewRelic.logDebug("Debug text.")
do {
try errorMethod()
} catch {
NewRelic.logErrorObject(error)
}
NewRelic.logAll([
"logLevel": "WARN",
"message": "This is a test message for the New Relic logging system."
])
NewRelic.logAttributes([
"logLevel": "WARN",
"message": "This is a test message for the New Relic logging system.",
"additionalAttribute1": "attribute1",
"additionalAttribute2": "attribute2"
])

통사론

NewRelicCapacitorPlugin.logInfo(options: { message: string}) => void
NewRelicCapacitorPlugin.logVerbose(options: { message: string}) => void
NewRelicCapacitorPlugin.logError(options: { message: string}) => void
NewRelicCapacitorPlugin.logWarn(options: { message: string}) => void
NewRelicCapacitorPlugin.logDebug(options: { message: string}) => void
NewRelicCapacitorPlugin.logAll(options: { error: string; attributes: object; }): void
NewRelicCapacitorPlugin.logAttributes(options: { attributes: object; }): void

예시 [#example]

NewRelicCapacitorPlugin.logInfo({message: "User profile loaded successfully"});
NewRelicCapacitorPlugin.logVerbose({message:"Verbose logging example"});
NewRelicCapacitorPlugin.logError({message:"Error loading user profile"});
NewRelicCapacitorPlugin.logWarn({message: "Low disk space warning"});
NewRelicCapacitorPlugin.logDebug({message:"Debugging session started"});
NewRelicCapacitorPlugin.logAll({
error: "UnexpectedError",
attributes: { "errorCode": "500", "errorMessage": "Internal Server Error" ,level:"WARN"}
});
NewRelicCapacitorPlugin.logAttributes({attributes:{
"userID": 12345,
"sessionID": "abcde12345",
"isLoggedIn": true,
"message":"this is test",
"level":"INFO"
}});

통사론

NewRelic.logInfo(message: string): void;
NewRelic.logDebug(message: string): void;
NewRelic.logVerbose(message: string): void;
NewRelic.logWarn(message: string): void;
NewRelic.logError(message: string): void;
NewRelic.log(level: string, message: string): void;
NewRelic.logAttributes(attributes: {[key: string]: boolean | number | string}): void;

예시 [#example]

NewRelic.logInfo("User logged in successfully");
NewRelic.logDebug("Debug message");
NewRelic.logVerbose("Verbose message detailing step-by-step execution");
NewRelic.logWarn("Warning message indicating a potential issue");
NewRelic.logError("Error message indicating a failure");
NewRelic.log("INFO", "User logged in successfully");
NewRelic.logAttributes({
"userID": 12345,
"sessionID": "abcde12345",
"isLoggedIn": true,
"message":"this is test",
"level":"INFO"
});

통사론

CrossNewRelic.Current.LogInfo(String message) : void
CrossNewRelic.Current.LogError(String message) : void
CrossNewRelic.Current.LogVerbose(String message) : void
CrossNewRelic.Current.LogWarning(String message) : void
CrossNewRelic.Current.LogDebug(String message) : void
CrossNewRelic.Current.Log(LogLevel level, String message) : void
CrossNewRelic.Current.LogAttributes(Dictionary<string, object> attributes) : void

예시 [#example]

CrossNewRelic.Current.LogInfo("This is an informational message");
CrossNewRelic.Current.LogError("This is an error message");
CrossNewRelic.Current.LogVerbose("This is a verbose message");
CrossNewRelic.Current.LogWarning("This is a warning message");
CrossNewRelic.Current.LogDebug("This is a debug message");
CrossNewRelic.Current.Log(LogLevel.Info, "This is an informational message");
CrossNewRelic.Current.LogAttributes(new Dictionary<string, object>()
{
{"BreadNumValue", 12.3 },
{"BreadStrValue", "MAUIBread" },
{"BreadBoolValue", true },
{"message", "This is a message with attributes" }
}
);

통사론

NewrelicMobile.instance.logInfo(String message) : void
NewrelicMobile.instance.logError(String message) : void
NewrelicMobile.instance.logVerbose(String message) : void
NewrelicMobile.instance.logWarning(String message) : void
NewrelicMobile.instance.logDebug(String message) : void
NewrelicMobile.instance.log(LogLevel level, String message) : void
NewrelicMobile.instance.logAll(Exception exception,Map<String, dynamic>? attributes) : void
NewrelicMobile.instance.logAttributes(Dictionary<string, object> attributes) : void

예시 [#example]

NewrelicMobile.instance.logInfo("This is an informational message");
NewrelicMobile.instance.logError("This is an error message");
NewrelicMobile.instance.logVerbose("This is a verbose message");
NewrelicMobile.instance.logWarning("This is a warning message");
NewrelicMobile.instance.logDebug("This is a debug message");
NewrelicMobile.instance.log(LogLevel.Info, "This is an informational message");
NewrelicMobile.instance.logAll(Exception("This is an exception"),
{"BreadNumValue": 12.3 ,
"BreadStrValue": "FlutterBread",
"BreadBoolValue": true ,
"message": "This is a message with attributes" }
);
NewrelicMobile.instance.logAttributes(
{"BreadNumValue": 12.3 ,
"BreadStrValue": "FlutterBread",
"BreadBoolValue": true ,
"message": "This is a message with attributes" }
);

통사론

NewRelic.logInfo(String message) : void
NewRelic.logError(String message) : void
NewRelic.logVerbose(String message) : void
NewRelic.logWarning(String message) : void
NewRelic.logDebug(String message) : void
NewRelic.log(LogLevel level, String message) : void
NewRelic.logAll(Error error,attributes?: {[key: string]: any}) : void
NewRelic.logAttributes(attributes?: {[key: string]: any}) : void

예시 [#example]

NewRelic.logInfo();
NewRelic.logError("This is an error message");
NewRelic.logVerbose("This is a verbose message");
NewRelic.logWarning("This is a warning message");
NewRelic.logDebug("This is a debug message");
NewRelic.log(LogLevel.INFO, "This is an informational message");
Newrelic.logAll(new Error("This is an exception"),
{"BreadNumValue": 12.3 ,
"BreadStrValue": "FlutterBread",
"BreadBoolValue": true ,
"message": "This is a message with attributes" }
);
Newrelic.logAttributes(
{"BreadNumValue": 12.3 ,
"BreadStrValue": "FlutterBread",
"BreadBoolValue": true ,
"message": "This is a message with attributes",
level:newRelic.LogLevel.INFO });

통사론

CrossNewRelicClient.Current.LogInfo(String message) : void
CrossNewRelicClient.Current.LogError(String message) : void
CrossNewRelicClient.Current.LogVerbose(String message) : void
CrossNewRelicClient.Current.LogWarning(String message) : void
CrossNewRelicClient.Current.LogDebug(String message) : void
CrossNewRelicClient.Current.Log(LogLevel level, String message) : void
CrossNewRelicClient.Current.LogAttributes(Dictionary<string, object> attributes) : void

예시 [#example]

CrossNewRelicClient.Current.LogInfo("This is an informational message");
CrossNewRelicClient.Current.LogError("This is an error message");
CrossNewRelicClient.Current.LogVerbose("This is a verbose message");
CrossNewRelicClient.Current.LogWarning("This is a warning message");
CrossNewRelicClient.Current.LogDebug("This is a debug message");
CrossNewRelicClient.Current.Log(LogLevel.Info, "This is an informational message");
CrossNewRelicClient.Current.LogAttributes(new Dictionary<string, object>()
{
{"BreadNumValue", 12.3 },
{"BreadStrValue", "XamBread" },
{"BreadBoolValue", true },
{"message", "This is a message with attributes" }
}
);

통사론

UNewRelicBPLibrary::logInfo(FString message) : void
UNewRelicBPLibrary::logError(FString message) : void
UNewRelicBPLibrary::logVerbose(FString message) : void
UNewRelicBPLibrary::logWarning(FString message) : void
UNewRelicBPLibrary::logDebug(FString message) : void
UNewRelicBPLibrary::log(AgentLogLevel level, FString message) : void
UNewRelicBPLibrary::logAttributes(TMap <FString, FString> attributes) : void

예시 [#example]

#include "NewRelicBPLibrary.h"
UNewRelicBPLibrary::logInfo("This is an informational message");
UNewRelicBPLibrary::logError("This is an error message");
UNewRelicBPLibrary::logVerbose("This is a verbose message");
UNewRelicBPLibrary::logDebug("This is a debug message");
UNewRelicBPLibrary::logWarning("This is a warning message");
UNewRelicBPLibrary::log(AgentLogLevel::Debug, "This is a debug message");
TMap<FString, FString> attributes;
attributes.Add("place", TEXT("Robots"));
attributes.Add("user", TEXT("user1"));
attributes.Add("level", TEXT("DEBUG"));
attributes.Add("message", TEXT("This is a debug message"));
UNewRelicBPLibrary::logAttributes(attributes);
Copyright © 2024 New Relic Inc.

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