• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Log mobile

Vous pouvez utiliser nos API pour envoyer le log de vos applications mobiles à New Relic. Votre log sera dans un seul endroit où vous pourrez les analyser.

Activer le log mobile

Pour les nouvelles entités mobiles, le logging mobile est activé par défaut avec un taux d'échantillonnage de 100 % et un niveau de log de WARN.

Pour les entités existantes où le logging était auparavant désactivé, ou pour vérifier vos paramètres :

  1. Allez à one.newrelic.com > All capabilities.
  2. Cliquez sur Mobile.
  3. Cliquez sur votre application mobile.
  4. Dans le volet de gauche, sous Settings, cliquez sur Application Settings.
  5. Activez Mobile Logs .
  6. Cliquez sur Save.

Configurez votre log

Pour configurer le taux d'échantillonnage ou le niveau de log:

  1. Dans New Relic, accédez à votre application mobile.
  2. Dans le volet de gauche, sous Settings, cliquez sur Application Settings.
  3. Pour modifier la fréquence d'échantillonnage, sélectionnez une nouvelle valeur dans le champ sous Sample rate of total sessions.
  4. Pour modifier le niveau de log, sélectionnez le niveau de log souhaité dans le menu déroulant sous Logs verbosity.

Vous pouvez ajuster le niveau de log pour contrôler le volume de données ingérées. Les niveaux pris en charge incluent

  • ERROR
  • WARN (Par défaut pour les nouvelles applications)
  • INFO
  • VERBOSE
  • DEBUG

Conseil

N'augmentez le niveau de log qu'à VERBOSE ou DEBUG pour le dépannage temporaire, car ces niveaux augmentent considérablement l'ingestion de données. Nous recommandons d'utiliser WARN ou ERROR pour les versions de publication.

Important

Configuration côté serveur : Les paramètres des logs mobiles sont contrôlés côté serveur. Cela signifie que vous n'avez pas besoin de déployer une nouvelle version de votre application pour que les modifications apportées au bouton bascule, au taux d'échantillonnage ou au niveau de log prennent effet. L'agent récupérera la nouvelle configuration au prochain lancement de l'application ou lors de la récupération de la configuration.

Comment les logs sont collectés

  • Collecte manuelle via l'API (recommandé) : Utilisez notre API pour envoyer des messages de log, des attributs et des exceptionsspécifiques.

  • Collecte automatique : L'agent peut capturer automatiquement les logs envoyés à la sortie standard (stdout) et à l'erreur standard (stderr).

    • Exigence : La collecte automatique est désactivée par défaut. Pour l'activer :

      1. Vous devez activer le indicateur de fonctionnalité NRFeatureFlag_AutoCollectLogs dans le code d'initialisation de votre application.
      2. Le bouton bascule Mobile Logs est On dans l'interface utilisateur de New Relic.

Afficher le log de New Relic

Pour afficher votre log dans l’interface utilisateur :

  1. Accédez à votre application mobile.
  2. Dans le volet de gauche, sous Triage, cliquez sur Logs.

Veuillez noter qu'il peut y avoir des retards dans le logging mobile :

  • Il faudra jusqu'à 15 minutes pour que le log apparaisse sur la page du log .
  • Il faudra jusqu'à 15 minutes pour que les modifications apportées au basculement du log, au taux d'échantillonnage et au niveau de log soient reflétées dans votre application mobile.

Utiliser les API pour capturer le log

L'API ci-dessous fournit un ensemble complet de méthodes de logging pour capturer différents types d'informations et d'événements dans votre application. Ces méthodes vous permettent d'envoyer des messages de log avec différents niveaux de gravité (info, avertissement, débogage, verbeux, erreur), un niveau de log personnalisé et un contexte supplémentaire tel que des objets jetables (exceptions) et des attributs.

Gardez à l’esprit que lorsque vous utilisez les API de Logging, vous ne devez utiliser le niveau de débogage du log que si vous souhaitez voir le log de débogage de l’agent.

Syntaxe

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)

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

Syntaxe

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

Exemple [#example]

Objectif-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"
])

Syntaxe

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

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

Syntaxe

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;

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

Syntaxe

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

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

Syntaxe

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

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

Syntaxe

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

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

Syntaxe

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

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

Syntaxe

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

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

Syntaxe

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

Exemple [#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);
Droits d'auteur © 2026 New Relic Inc.

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