• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Mobile logs

Puede emplear nuestra API para enviar el log de sus aplicaciones móviles a New Relic. Tu registro estará en un lugar donde podrás analizarlos.

Habilitar registro móvil

Para las entidades móviles recién creadas, el logging móvil está habilitado de forma predeterminada con una tasa de muestreo del 100 % y un nivel de log de WARN.

Para las entidades existentes donde el logging se desactivó previamente, o para verificar su configuración:

  1. Vaya a one.newrelic.com > All capabilities.
  2. Haga clic en Mobile.
  3. Haz clic en tu aplicación móvil.
  4. En el panel izquierdo debajo de Settings, haga clic en Application Settings.
  5. Activar Mobile Logs .
  6. Haga clic en Save.

Configura tu registro

Para configurar la frecuencia de ejemplificación o el nivel de log :

  1. En New Relic, navega hasta tu aplicación móvil.
  2. En el panel izquierdo debajo de Settings, haga clic en Application Settings.
  3. Para cambiar la frecuencia de ejemplificación, seleccione un nuevo valor en el campo bajo Sample rate of total sessions.
  4. Para cambiar el nivel de log, seleccione el nivel de log que prefiera en el menú desplegable en Logs verbosity.

Puede ajustar el nivel de log para controlar el volumen de datos ingeridos. Los niveles admitidos incluyen

  • ERROR
  • WARN (Predeterminado para nuevas aplicaciones)
  • INFO
  • VERBOSE
  • DEBUG

Sugerencia

Solo aumente el nivel de log a VERBOSE o DEBUG para la solución de problemas temporal, ya que estos niveles aumentan significativamente la ingesta de datos. Recomendamos usar WARN o ERROR para las compilaciones de lanzamiento.

Importante

Configuración del lado del servidor: La configuración de log móvil se controla del lado del servidor. Esto significa que no necesita implementar una nueva versión de su aplicación para que los cambios en la activación/desactivación, la frecuencia de muestreo o el nivel de log surtan efecto. El agente recogerá la nueva configuración en el próximo inicio de la aplicación o la obtención de la configuración.

Cómo se recopilan los logs

  • Recopilación manual de API (Recomendado): Use nuestra API para enviar mensajes de log, atributos y excepcionesespecíficos.

  • Recopilación automática: El agente puede capturar automáticamente los logs enviados a la salida estándar (stdout) y al error estándar (stderr).

    • Requisito: La recopilación automática está desactivada de forma predeterminada. Para habilitarlo:

      1. Debe habilitar la marca de función NRFeatureFlag_AutoCollectLogs en el código de inicialización de su aplicación.
      2. El interruptor Mobile Logs está On en la interfaz de usuario de New Relic.

Ver registro en New Relic

Para ver su log en la UI:

  1. Navegue a su aplicación móvil.
  2. En el panel izquierdo, debajo de Triage, haga clic en Logs.

Tenga en cuenta que puede haber algunos retrasos en el logging móvil:

  • El registro tardará hasta 15 minutos en aparecer en la página de Logs .
  • Los cambios en la alternancia de log, la frecuencia de ejemplificación y el nivel de log tardarán hasta 15 minutos en reflejar en su aplicación móvil.

Emplee API para capturar logs

La API a continuación proporciona un conjunto completo de métodos de logs para capturar varios tipos de información y eventos en su aplicación. Estos métodos le permiten crear mensajes de log con diferentes niveles de gravedad (información, advertencia, depuración, verbose, error), niveles de logpersonalizados y contexto adicional, como excepciones y atributos.

Tenga en cuenta que cuando emplee la API de logging, solo debe emplear el nivel de depuración de logsi desea ver el registro de depuración del agente.

Sintaxis

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)

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

Sintaxis

C objetivo

(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)

Ejemplo [#example]

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

Sintaxis

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

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

Sintaxis

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;

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

Sintaxis

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

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

Sintaxis

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

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

Sintaxis

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

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

Sintaxis

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

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

Sintaxis

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

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

Sintaxis

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

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