Le logging New Relic for Go utilise le package de log Go standard et un package New Relic Logger. Le logging est utile pour le dépannage de votre intégration New Relic ; par exemple, en cas de problèmes installation ou configuration.
Écrire un fichier de log
Pour utiliser les méthodes agent Go pour l'écriture des fichiers log et d'audit, consultez log.go sur le référentiel GitHub agent (repository).
Intégrations Logrus
New Relic propose deux intégrations Logrus pour différents cas d'utilisation :
Logging de l'agent (pour les messages de débogage de l'agent Go)
Utilisez cette intégration pour envoyer les messages de logs internes de l'agent Go vers Logrus. Cela est utile pour le dépannage de l'agent lui-même.
Intégration : nrlogrus
Voici un exemple d'utilisation de l'intégration New Relic Logrus pour le logging de l'agent :
Importez les packages requis :
import ("os""github.com/newrelic/go-agent/v3/integrations/nrlogrus""github.com/newrelic/go-agent/v3/newrelic""github.com/sirupsen/logrus")Configurez l'agent Go pour utiliser Logrus pour le logging de l'agent :
app, err := newrelic.NewApplication(newrelic.ConfigAppName("Your Application Name"),newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")),func(config *newrelic.Config) {logrus.SetLevel(logrus.DebugLevel)config.Logger = nrlogrus.StandardLogger()},)
Logs d'application (logs en contexte)
Utilisez cette intégration pour envoyer les messages de log Logrus de votre application vers New Relic avec une corrélation automatique des traces. Cela active les logs en contexte, vous permettant de voir les messages de log liés à vos erreurs et traces directement dans l'interface utilisateur de votre application.
Intégration : logcontext-v2/nrlogrus
Voici un exemple d'utilisation de l'intégration New Relic Logrus pour le logging d'application :
Importez les packages requis :
import ("context""os""github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrlogrus""github.com/newrelic/go-agent/v3/newrelic""github.com/sirupsen/logrus")Configurez Logrus pour utiliser le formateur New Relic :
app, err := newrelic.NewApplication(newrelic.ConfigAppName("Your Application Name"),newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")),newrelic.ConfigAppLogForwardingEnabled(true),)logger := logrus.New()logger.SetFormatter(nrlogrus.NewFormatter(app, &logrus.TextFormatter{}))Utilisez le logger dans votre application avec le contexte de transaction :
txn := app.StartTransaction("myTransaction")defer txn.End()ctx := newrelic.NewContext(context.Background(), txn)logger.WithContext(ctx).Info("This log will be correlated with the transaction")
Pour plus d'exemples, consultez les exemples logcontext-v2/nrlogrus.
Autres intégrations de logging prises en charge
En plus de Logrus, New Relic propose des intégrations pour plusieurs autres bibliothèques de logging Go populaires :
Intégrations de logging de l'Agent
Ces intégrations envoient les messages de débogage internes de l'agent Go à votre framework de logging :
- nrzap - Intégration avec le logger Zap d'Uber
- nrslog - Intégration avec le package
log/slogde la bibliothèque standard Go - nrzerolog - Intégration avec Zerolog
- nrlogxi - Intégration avec Logxi
Intégrations de logs en contexte
Ces intégrations activent les logs en contexte pour vos logs d'application :
- logcontext-v2/zerologWriter - Envoyez les messages de log Zerolog vers New Relic avec la corrélation de traces
- logcontext-v2/logWriter - Envoyer les messages du package
logde la bibliothèque standard vers New Relic avec la corrélation de traces
Chaque intégration suit un modèle similaire aux exemples Logrus ci-dessus. Consultez les dépôts GitHub respectifs pour des instructions d'utilisation détaillées et des exemples.
Afficher les logs de vos données APM et infrastructure
Avec les logs en contexte, vous pouvez visualiser les messages de log liés à vos erreurs et traces directement dans l'interface utilisateur de votre application. Vous pouvez également consulter les logs dans le contexte de vos données d'infrastructure, telles que les clusters Kubernetes. Inutile de basculer vers une autre page de l'interface.
Pour activer les logs en contexte, utilisez l'une des intégrations de logs en contexte listées ci-dessus. Pour Logrus spécifiquement, consultez l'intégration logcontext-v2/nrlogrus.