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.
Avec notre agent Java , vous pouvez obtenir logs in context, qui vous permet de voir le log de votre application dans le contexte de vos autres données New Relic. Pour des informations générales sur cette fonctionnalité, consultez Logs en contexte APM.
Si vous utilisez un framework pris en charge, vous avez deux options pour configurer les logs APM afin d'envoyer automatiquement le log de votre application et les métadonnées de liaison à New Relic. Une option consiste à configurer manuellement une extension log qui décorera vos logs et vous pourrez ensuite les transmettre à vous-même. L’autre option est de laisser l’agent Java gérer automatiquement la décoration et la transmission de vos logs. Les frameworks pris en charge pour les logs automatiques dans le contexte incluent :
Log4j1 1.2.17 ou supérieur
Log4j2 2.6 ou supérieur
Logback 1.1 ou supérieur
JUL (java.util.logging) JDK 8+
JBoss Logging 1.3.0.Final vers 2.x
Logging Dropwizard (capturée via l'instrumentation Logback, voir le problème connu ci-dessous)
Important
Logging JBoss
JBoss Logging délègue la fonctionnalité de décoration locale à l'instrumentation JUL et peut donc être entièrement contrôlé par les deux modules d'instrumentation suivants :
class_transformer:
com.newrelic.instrumentation.java.logging-jdk8:
enabled:true
com.newrelic.instrumentation.jboss.logging:
enabled:true
Important
Problème connu avec le logging de Dropwizard
Par défaut, Dropwizard utilise Logback pour son backend de logging. Il achemine également tous les java.util.logging, Utilisation de Log4j et Apache Commons Logging via Logback. Ce comportement de routage peut conduire à ce que des logs en double soient signalés à New Relic si l'agent Java instrumente l'une de ces autres bibliothèques de logging en plus de l'instrumenté Logback.
Pour éviter de signaler un log en double lors de l'utilisation du logging Dropwizard, il est recommandé de désactiver toute l'instrumentation de logging de framework, à l'exception de Logback. Vous pouvez le faire dans la section class_transformer du fichier de configuration de l'agent :
class_transformer:
com.newrelic.instrumentation.logback-classic-1.2:
enabled:true
com.newrelic.instrumentation.apache-log4j-1:
enabled:false
com.newrelic.instrumentation.apache-log4j-2:
enabled:false
com.newrelic.instrumentation.java.logging-jdk8:
enabled:false
com.newrelic.instrumentation.jboss.logging:
enabled:false
Important
L'agent sortie 7.7.0 et les versions supérieures ont cette fonctionnalité activée dans le agent configuration fichier par défaut.
L'agent de transfert de logentraînera une augmentation de la consommation de données lorsqu'un framework pris en charge est détecté. Le montant dépend de l'application et de la quantité de logs produits. Cette fonctionnalité peut être désactivée. Consultez Désactiver le logging automatique pour plus d’informations sur vos options.
Si vous disposez déjà d'une solution de transfert de log , vous devez désactiver cette fonctionnalité.
Si vous préférez utiliser votre propre redirecteur de log , plutôt que de laisser l'agent Java transférer les logs, alors notre solution de logs en contexte manuels serait la bonne solution pour décorer votre log avec un contexte de trace cryptée.
Il s'agit de l'approche la plus simple et constitue un excellent choix pour les développeurs qui n'ont peut-être pas l'accès ou l'intérêt de configurer un redirecteur de log , ou pour les comptes qui souhaitent voir la puissance des logs et autres liens métadonnées dans le contexte de leurs applications, sans beaucoup de frais généraux.
Il vous suffit d'installer une version d'agent avec des capacités de transfert de log (agent Java 7.6.0 ou supérieur). Si le transfert est désactivé, vous pouvez utiliser cette configuration :
Fichier de configuration (newrelic.yml), en retrait de 2 espaces sous la section commune :
Une fois cette fonctionnalité activée, vous avez également le contrôle sur le nombre maximal de lignes log envoyées à New Relic chaque minute. La valeur par défaut est 10 000. Si plus de 10 000 lignes log sont vues par l'agent dans une fenêtre de 60 secondes, votre log commencera à être échantillonné.
Réglez-le sur un nombre plus élevé pour recevoir plus de logs. Réglez-le sur un nombre inférieur pour recevoir moins de logs. Tout entier non négatif est valide.
Conseil
Cela fait référence au nombre de logs envoyés par minute. La définition max_samples_stored sur une valeur inférieure à 12 aura pour effet de ne pas envoyer de log.
Si vous disposez déjà d'une solution de transfert de loget que vous mettez à jour votre agent pour utiliser les logs automatiques dans ce contexte, assurez-vous de disable your manual log forwarder. Sinon, votre application enverra des lignes log en double. Selon votre compte, cela peut entraîner une double facturation. Pour plus d'informations, suivez les procédures pour désactiver votre redirecteur de logspécifique.
Vous avez déjà un redirecteur de logqui vous plaît ? Nous sommes là pour vous ! L'agent Java peut décorer votre log avec les métadonnées de liaison nécessaires pour fournir l'accès aux logs automatiques dans le contexte de la fonctionnalité, et vous pouvez les envoyer à New Relic en utilisant votre redirecteur de logmanuel.
Cette option ne doit pas être utilisée avec le transfert interne à l'agent. L'utilisation d'un redirecteur de logexterne pour envoyer le log à New Relic alors que le transfert interne à l'agent est activé entraînera l'envoi de votre log deux fois à New Relic. Selon votre compte, cela peut entraîner une double facturation.
Mettez à jour configuration de votre agent pour désactiver le transfert de loget activer la décoration locale, puis redémarrez l'agent pour commencer à décorer votre log.
Fichier de configuration (newrelic.yml), en retrait de 2 espaces sous la section commune :
Notre décorateur ajoute cinq attributs à chaque message de log dans votre fichier log d'application : entity.guid, hostname, trace.id, span.id et entity.name. Exemple:
This is my log message. NR-LINKING|{entity.guid}|{hostname}|{trace.id}|{span.id}|{entity.name}|
Si le message de log est vide ou vierge, le message de sortie sera également vide. Exemple:
Certains attributs peuvent être vides si le log s'est produit en dehors d'une transaction ou s'ils ne sont pas applicables au contexte de votre application.
Ce document vous a-t-il aidé lors de votre installation ?
Sécurisez vos données
Votre log peut inclure des informations sensibles protégées par la loi HIPAA ou d’autres protocoles de conformité. Par défaut, nous masquons les modèles de numéros qui semblent correspondre à des éléments tels que des cartes de crédit ou des numéros de sécurité sociale, mais vous devrez peut-être hacher ou masquer des informations supplémentaires.
Pour plus d'informations, consultez notre documentation sur l'expression d'obfuscation et les règles. Vous pouvez hacher ou masquer vos données log en utilisant l'interface utilisateur de New Relic ou en utilisant NerdGraph, notre API GraphQL .
Explorez vos données
Pour tirer le meilleur parti de vos données de logging :
Sur la page APM Summary, cliquez sur votre graphique Web transaction time pour afficher le log associé à un moment précis.
Vérifiez Errors inbox de votre application pour afficher le log associé à vos erreurs.
Utilisez le tracing distribué pour voir le log associé à une trace individuelle.
En règle générale, votre log commencera à apparaître moins d'une minute après avoir activé logs dans ce contexte. Vérifiez la section Triage > Logs de votre application. Vous commencerez également à voir log patterns liés à l’erreur.
Si vous ne voyez aucun log d'erreurs ou de trace, il se peut qu'il n'y en ait pas pour votre application. Essayez d'actualiser la page de l'interface utilisateur ou de modifier la période sélectionnée.
Désactiver le logging automatique
Les logs APM dans le contexte transmettent automatiquement log les données l'agent et sont activés par défaut. Cela peut avoir un impact négatif sur votre sécurité, votre conformité, votre facturation ou les performances de votre système. Pour désactiver les logs automatiques :
Dans le menu utilisateur de l’interface utilisateur de New Relic, cliquez sur Manage your data > Log settings.
Cliquez sur le menu à points de suspension ... situé à droite de la ligne du compte.
Cliquez sur le bouton de confirmation pour activer ou désactiver et verrouiller ou déverrouiller le logging automatique (comptes parents) ou activer ou désactiver uniquement (comptes enfants).
Pour plus d'informations, ou si vous devez ajuster le paramètre par défaut, suivez les procédures pour désactiver le logging automatique.
Option logs en contexte manuels
Avant que les agents linguistiques n'aient la possibilité de transmettre et de décorer les logs, vous pouviez utiliser nos solutions manuelles pour envoyer des métadonnées de liaison.
Cette option est toujours prise en charge, mais n'est plus encouragée. De plus, cette méthode nécessite que vous installiez un redirecteur de logavant d'activer les logs dans ce contexte. Si vous ne disposez pas d'un redirecteur de log , l'interface utilisateur de New Relic vous prompt d'utiliser notre agent infrastructure .
Si vous décidez d'utiliser votre solution de transfert de log existante et que vous décidez ultérieurement de mettre à jour votre agent pour utiliser les logs en contexte automatiques, assurez-vous de disable your manual log forwarder. Sinon, votre application enverra des lignes log en double. Selon votre compte, cela peut entraîner une double facturation. Pour plus d'informations, suivez les procédures pour désactiver votre redirecteur de logspécifique.
Si vous devez utiliser le processus manuel pour configurer les logs en contexte pour Java, suivez ces étapes :
Assurez-vous d'avoir déjà configuré le logging dans New Relic. Cela inclut la configuration d'un redirecteur de logpris en charge qui collecte votre log d'application et étend les métadonnées qui sont transmises à New Relic.
Configurez les logs en contexte pour Java pour enrichir vos données log , en utilisant l'une des extensions suivantes selon le cas. Si vous utilisez Spring ou Spring Boot et que vous n'êtes pas sûr de l'extension dont vous avez besoin, consultez notre documentation Spring .
Nous proposons une extension Dropwizard pour les logs en contexte avec l'agent Java. Pour commencer, consultez le code et un exemple d’application sur GitHub.
Pour configurer les logs en contexte pour votre application Java avec l'extension DropWizard :
Assurez-vous que le package Dropwizard 1.3 ou supérieur est installé et fonctionne sur votre application. Utilisez les appenders Dropwizard d'origine et l'usine de logging installés et fonctionnant sur l'application.
Assurez-vous que l'agent Java New Relic version 5.6.0 ou supérieure est installé sur votre application et que vous avez activé l' argument JVM -javaagent.
Mettez à jour les dépendances de votre projet pour inclure l'extension Dropwizard 1.3, le cas échéant :
Gradle: Ajoutez ce qui suit à votre fichier build.gradle :
Maven: Ajoutez ce qui suit à votre fichier pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>dropwizard</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Mettez à jour votre fichier de configuration Dropwizard .yaml avec une disposition newrelic-json , en remplaçant le type: console ou type: file actuellement utilisé par type: newrelic-console ou type: newrelic-file selon le cas. Par exemple:
logging:
appenders:
-type: newrelic-console
# Add the two lines below if you don't have a layout specified on the appender.
# If you have a layout, remove all parameters to the layout and set the type.
layout:
type: newrelic-json
L'extension New Relic Dropwizard prend également en charge un type de mise en page log-format qui utilise le logging Dropwizard standard. À des fins de test, vous pouvez modifier le type de mise en page avec une modification d'une seule ligne :
logging:
appenders:
-type: newrelic-file
# This format will be ignored by the newrelic-json layout, but used by the log-format layout.
Pour configurer les logs en contexte pour votre application Java avec l'extension java.util.logging :
Assurez-vous que le package java.util.logging est installé et fonctionne sur l'application.
Assurez-vous que l'agent Java New Relic version 5.6.0 ou supérieure est installé sur votre application et que vous avez activé l' argument JVM -javaagent.
Gradle: Ajoutez ce qui suit à votre fichier build.gradle :
dependencies {
implementation("com.newrelic.logging:jul:2.0")
}
Maven: Ajoutez ce qui suit à votre fichier pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>jul</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Vérifiez si la propriété handlers de votre fichier de logging est définie sur autre chose que NewRelicMemoryHandler. Recherchez une ligne répertoriant les gestionnaires de l'enregistreur racine, comme ceci :
handlers=java.util.logging.FileHandler
Mettez à jour votre fichier de propriétés de logging pour définir le gestionnaire de l'enregistreur racine sur NewRelicMemoryHandler afin qu'il intercepte les messages destinés à un autre gestionnaire :
Configurez le NewRelicMemoryHandler en définissant la cible sur le gestionnaire qui a été précédemment assigné à l'enregistreur racine, afin qu'il capture les données dont New Relic a besoin sur le thread d'où provient le message de log :
Utilisez un NewRelicFormatter pour le gestionnaire final. Mettez à jour votre fichier de propriétés de logging pour définir la propriété formatter comme dans l'exemple suivant. Assurez-vous que le gestionnaire dans lequel vous définissez le formateur est le gestionnaire target de l’étape précédente (java.util.logging.FileHandler dans cet exemple).
Le format des logs New Relic est JSON avec télémétrie mémorisée que nous utilisons pour corréler les transactions et les connecter ensemble. Actuellement, nous ne prenons en charge aucune personnalisation de ce format.
Une fois terminé, JSON est un log au lieu d'un texte. Le JSON doit être formaté sous forme d'objets uniques, un par ligne, et doit contenir des champs tels que log.level et thread.name. Le trace.id, qui est requis pour les logs en contexte, ne devrait avoir une valeur que pour les messages de log qui se produisent dans une transaction.
Le moyen le plus direct d'obtenir les extensions de logs en contexte est d'ajouter ces dépendances à pom.xml de Maven ou build.gradle de Gradle. Cela permet aux outils d'emballage de détecter la dépendance correcte.
Si vous ne pouvez pas modifier ces fichiers, vous pouvez à la place ajouter les fichiers jar directement à l'application classpath pour de votre de framework configuration logging.
Vérifiez quel framework de logging l’application utilise.
Assurez-vous que vous êtes en mesure de modifier de votre framework de configuration logging.
Ajoutez les trois fichiers JAR suivants au classpath s’ils ne sont pas déjà présents. En règle générale, nous recommandons de prendre les dernières versions publiées sur Maven Central.
Nous proposons une extension Log4j 1.x pour les logs en contexte manuels avec l'agent Java . Pour commencer, consultez le code et un exemple d’application sur GitHub.
Pour configurer les logs manuels en contexte pour votre application Java avec l'extension Log4j 1.x, vous devez configurer l'extension Log4j dans le code ou via XML. Les fichiers de propriétés ne sont pas pris en charge car l'instance AsyncAppender ne peut être configurée automatiquement que via XML.
Assurez-vous que le package Log4j 1.x est installé et fonctionne sur l'application.
Assurez-vous que l'agent Java New Relic version 5.6.0 ou supérieure est installé sur votre application et que vous avez activé l' argument JVM -javaagent.
Mettez à jour les dépendances de votre projet pour inclure l'extension Log4j 1.x le cas échéant.
Gradle: Ajoutez ce qui suit à votre fichier build.gradle :
dependencies {
implementation("com.newrelic.logging:log4j1:2.0")
}
Maven: Ajoutez ce qui suit à votre fichier pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>log4j1</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Dans votre fichier XML de configuration de logging, mettez à jour votre élément <appender> avec un NewRelicLayout, en ajoutant <layout class="com.newrelic.logging.log4j1.NewRelicLayout"/>:
Nous proposons une extension Log4j 2.x pour les logs en contexte avec l'agent Java. Pour commencer, consultez le code et un exemple d’application sur GitHub.
Pour configurer les logs en contexte pour votre application Java avec l'extension Log4j 2.x :
Assurez-vous que l'agent Java New Relic version 5.6.0 ou supérieure est installé sur votre application et que vous avez activé l' argument JVM -javaagent.
Mettez à jour la dépendance de votre projet pour inclure l'extension Log4j 2.x, le cas échéant :
Gradle: Ajoutez la section en surbrillance à votre fichier build.gradle :
dependencies {
implementation("com.newrelic.logging:log4j2:2.0")
}
Maven: Ajoutez la section en surbrillance à votre fichier pom.xml :
<dependencies>
<dependency>
<groupId>com.newrelic.logging</groupId>
<artifactId>log4j2</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
Dans votre fichier XML de configuration de logging, mettez à jour votre élément <configuration> en ajoutant la section en surbrillance :
Si vous utilisez un fichier de propriétés, modifiez uniquement le layout.type:
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=NewRelicLayout
Si vous avez uniquement modifié un appender existant, ignorez cette étape. Si vous avez ajouté un nouvel appender, ajoutez <AppenderRef/> dans <Root> pour utiliser cet appender. Utilisez l’attribut ref pour faire référence à l’appender name que vous avez créé à l’étape précédente. Par exemple:
<Rootlevel="info">
<AppenderRefref="MyFile"/>
</Root>
Si vous utilisez un fichier de propriétés et que vous avez ajouté un nouvel appender, ajoutez :
Nous proposons une extension Logback pour les logs en contexte avec l'agent Java. Pour commencer, consultez le code et un exemple d’application sur GitHub.
Pour configurer les logs en contexte pour votre application Java avec Logback :
Assurez-vous que vous disposez de la version 1.2.0 ou supérieure de Logback et de la version 5.6.0 ou supérieure de l'agent Java New Relic installée et fonctionnelle sur votre application.
Assurez-vous que l'agent Java New Relic version 5.6.0 ou supérieure est installé sur votre application et que vous avez activé l' argument JVM -javaagent.
Mettez à jour les dépendances de votre projet pour inclure l'extension Logback, le cas échéant :
Gradle: Ajoutez la section en surbrillance à votre fichier build.gradle :
Mettez à jour votre configuration de logging xml avec le NewRelicAsyncAppender. Pour garantir que NewRelicAsyncAppender encapsule tous les appenders qui cibleront les redirecteurs de logde New Relic, ajoutez la section suivante. Remplacez "LOG_FILE" par le nom de l’appender que vous avez mis à jour à l’étape précédente.
Assurez-vous que NewRelicAsyncAppender est le premier appender utilisé dans votre enregistreur. Remplacez les appenders de votre enregistreur racine par l'appender ASYNC créé à l'étape précédente. Ensuite, répertoriez tous les autres appenders après le NewRelicAsyncAppender dans la liste <root> .
<root>
<appender-refref="ASYNC"/>
</root>
Voici quelques exemples d'un fichier de logging .xml mis à jour pour l'extension Logback. Vous pouvez également voir un exemple fonctionnel sur GitHub.
Single console appender example
Exemple de fichier de configuration après l'ajout des informations d'extension de logging :
<!-- Send every message to normal console logging, as well. -->
<appender-refref="STDOUT"/>
</root>
</configuration>
Nous proposons des extensions pour les versions actuelles de Spring et Spring Boot. Si vous connaissez déjà la bibliothèque de logging, vous pouvez passer directement à cette documentation :
Les extensions prennent en charge la configuration par défaut uniquement sur Spring Boot 2.0 et supérieur.
With Spring Boot:
Voici quelques conseils pour déterminer quelle bibliothèque de logging vous possédez :
Si vous avez spring-boot-starter-log4j2 dans votre dépendance, vous utilisez log4j 2.x. Reportez-vous à la documentation Spring Boot log4j 2.x pour la configuration de base et à l' extension New Relic log4j 2 pour personnaliser votre configuration.
Spring implémente un pont vers d'autres bibliothèques de logging qui les trouveront automatiquement. Cependant, ces bibliothèques individuelles doivent être configurées et explicitement incluses dans les dépendances de votre projet.
Pour identifier votre dépendance de logging, consultez l'arbre de dépendances de votre Gradle, Maven ou autre outil de construction. Suivez ensuite les procédures pour configurer les logs en contexte pour votre application Java avec cette extension.
Ressort 4 ou inférieur :
La version Spring 4 et inférieure utilise Apache Commons Logging pour son pont. Reportez-vous à la documentation Spring pour plus d'informations sur la configuration de son pont.