Logging New Relic para Go utiliza el paquete de log de Go estándar y un paquete New Relic Logger . El logging es útil para la resolución de problemas de integración de New Relic; por ejemplo, con problemas de instalación o configuración .
Escribir archivo de registro
Para utilizar los métodos del agente Go para escribir archivos de registro y auditoría, consulte log.go en el repositorio de GitHub del agente.
Integraciones de Logrus
New Relic ofrece dos integraciones de Logrus para diferentes casos de uso:
Logging del agente (para mensajes de depuración del agente Go)
Utilice esta integración para enviar los mensajes de log internos del agente Go a Logrus. Esto es útil para solucionar problemas del propio agente.
Integración: nrlogrus
Este es un ejemplo del uso de la integración de New Relic Logrus para el logging del agente:
Importa los paquetes requeridos:
import ("os""github.com/newrelic/go-agent/v3/integrations/nrlogrus""github.com/newrelic/go-agent/v3/newrelic""github.com/sirupsen/logrus")Configura el agente Go para usar Logrus para el logging del agente:
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 de aplicación (logs en contexto)
Utilice esta integración para enviar los mensajes de log de Logrus de su aplicación a New Relic con correlación automática de trazas. Esto habilita logs en contexto, lo que le permite ver los mensajes de log relacionados con sus errores y trazas directamente en la interfaz de usuario de su aplicación.
Integración: logcontext-v2/nrlogrus
Este es un ejemplo de uso de la integración de Logrus de New Relic para el logging de aplicaciones:
Importa los paquetes requeridos:
import ("context""os""github.com/newrelic/go-agent/v3/integrations/logcontext-v2/nrlogrus""github.com/newrelic/go-agent/v3/newrelic""github.com/sirupsen/logrus")Configure Logrus para usar el formateador de 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{}))Utilice el logger en su aplicación con contexto de transacción:
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")
Para más ejemplos, consulte los ejemplos de logcontext-v2/nrlogrus.
Otras integraciones de logging admitidas
Además de Logrus, New Relic ofrece integraciones para varias otras bibliotecas de logging populares de Go:
Integraciones de logging del agente
Estas integraciones envían los mensajes de depuración internos del agente Go a su framework de logging:
- nrzap - Integración con el logger Zap de Uber
- nrslog - Integración con el paquete
log/slogde la biblioteca estándar de Go - nrzerolog - Integración con Zerolog
- nrlogxi - Integración con Logxi
Integraciones de logs en contexto
Estas integraciones habilitan logs en contexto para los logs de su aplicación:
- logcontext-v2/zerologWriter - Envíe mensajes de log de Zerolog a New Relic con correlación de trazas
- logcontext-v2/logWriter - Envíe mensajes del paquete
logde la biblioteca estándar a New Relic con correlación de trazas
Cada integración sigue un patrón similar a los ejemplos de Logrus anteriores. Consulte los respectivos repositorios de GitHub para obtener instrucciones de uso detalladas y ejemplos.
Ver el log de sus datos de infraestructura y APM
Con logs en contexto, puede ver mensajes de log relacionados con sus errores y trazas directamente en la interfaz de usuario de su aplicación. También puede ver logs en el contexto de sus datos de infraestructura, como clústeres de Kubernetes. No es necesario cambiar a otra página de la interfaz de usuario.
Para habilitar logs en contexto, utilice una de las integraciones de logs en contexto listadas anteriormente. Para Logrus específicamente, consulte la integración logcontext-v2/nrlogrus.