• /
  • EnglishEspañolFrançais日本語한국어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

Mobile logs

Você pode usar nossa API para enviar o log de seus aplicativos móveis para New Relic. Seu log estará em um local onde você poderá analisá-los.

Ativar registro móvel

Para novas entidades móveis criadas, o logging móvel é ativado por padrão com uma taxa de amostragem de 100% e um nível de log de WARN.

Para entidades existentes onde o logging foi desativado anteriormente, ou para verificar suas configurações:

  1. Vá para one.newrelic.com > All capabilities.
  2. Clique em Mobile.
  3. Clique no seu aplicativo móvel.
  4. No painel esquerdo em Settings, clique em Application Settings.
  5. Ative Mobile Logs .
  6. Clique em Save.

Configure seu registro

Para configurar a taxa de amostragem ou o nível de log:

  1. No New Relic, navegue até seu aplicativo móvel.
  2. No painel esquerdo em Settings, clique em Application Settings.
  3. Para alterar a taxa de amostragem, selecione um novo valor no campo em Sample rate of total sessions.
  4. Para alterar o nível de log, selecione o nível de log preferido na lista suspensa em Logs verbosity.

Você pode ajustar o nível de log para controlar o volume de dados ingeridos. Os níveis suportados incluem

  • ERROR
  • WARN (Padrão para novos aplicativos)
  • INFO
  • VERBOSE
  • DEBUG

Dica

Aumente o nível de log apenas para VERBOSE ou DEBUG para solução de problemas temporários, pois esses níveis aumentam significativamente a ingestão de dados. Recomendamos o uso de WARN ou ERROR para compilações de lançamento.

Importante

Configuração do lado do servidor: As configurações de log móvel são controladas no lado do servidor. Isso significa que você não precisa implantar uma nova versão do seu aplicativo para que as alterações na alternância, na taxa de amostragem ou no nível de log entrem em vigor. O agente pegará a nova configuração no próximo lançamento do aplicativo ou na busca de configuração.

Como os logs são coletados

  • Coleta manual da API (Recomendado): Use nossa API para enviar mensagens de log, atributos e exceçõesespecíficas.

  • Coleta automática: O agente pode capturar automaticamente os logs enviados para a saída padrão (stdout) e o erro padrão (stderr).

    • Requisito: A coleta automática está desativada por padrão. Para ativá-la:

      1. Você deve ativar o sinalizador de recurso NRFeatureFlag_AutoCollectLogs no código de inicialização do seu aplicativo.
      2. A alternância Mobile Logs está On na interface do usuário do New Relic.

Ver login New Relic

Para visualizar seu log na interface:

  1. Navegue até seu aplicativo móvel.
  2. No painel esquerdo, em Triage, clique em Logs.

Observe que pode haver alguns atrasos no logging móvel:

  • Levará até 15 minutos para que o log apareça na página de Logs .
  • Levará até 15 minutos para que as alterações na alternância de log, na taxa de amostragem e no nível de log sejam refletidas no seu aplicativo móvel.

Use API para capturar o log

A API abaixo fornece um conjunto abrangente de métodos de registro para capturar vários tipos de informações e eventos em seu aplicativo. Esses métodos permitem que você envie mensagens de log com diferentes níveis de gravidade (info, warning, debug, verbose, error), nível de log personalizado e contexto adicional, como throwables (exceções) e atributos.

Lembre-se de que ao usar a API de logging, você só deve usar o nível de log de depuração se quiser ver o log de depuração do agente.

Sintaxe

Java

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 [#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)

Exemplo [#example]

Java [#java]

// Log info
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 [#kotlin]

// Log info
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)

Sintaxe

Objetivo-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 [#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)

Exemplo [#example]

Objetivo-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 [#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"
])

Sintaxe

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

Exemplo [#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"
}});

Sintaxe

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;

Exemplo [#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"
});

Sintaxe

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

Exemplo [#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>()
{
{ "level","info"},
{ "BreadNumValue", 12.3 },
{ "BreadStrValue", "MAUIBread" },
{ "BreadBoolValue", true },
{ "message", "This is a message with attributes" }
}
);

Sintaxe

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

Exemplo [#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",
"level":"info"
});
NewrelicMobile.instance.logAttributes({
"BreadNumValue": 12.3,
"BreadStrValue": "FlutterBread",
"BreadBoolValue": true,
"message": "This is a message with attributes",
"level":"info"
});

Sintaxe

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

Exemplo [#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,
});

Sintaxe

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

Exemplo [#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>()
{
{"level", "info"},
{ "BreadNumValue", 12.3 },
{ "BreadStrValue", "XamBread" },
{ "BreadBoolValue", true },
{ "message", "This is a message with attributes" }
}
);

Sintaxe

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

Exemplo [#example]

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

Sintaxe

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

Exemplo [#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 © 2026 New Relic Inc.

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