O registro do New Relic for Go usa o pacote de log Go padrão e um pacote Logger do New Relic. O registro é útil para resolução de problemas na integração do New Relic; por exemplo, com problemas de instalação ou configuração .
Gravar arquivo de log
Para usar os métodos do agente Go para gravar arquivos de log e auditoria, consulte log.go no repositório GitHub do agente.
Integrações do Logrus
A New Relic oferece duas integrações do Logrus para diferentes casos de uso:
Logging do agente (para mensagens de depuração do agente Go)
Use esta integração para enviar as mensagens de log internas do agente Go para o Logrus. Isso é útil para a solução de problemas do próprio agente.
Integração: nrlogrus
Aqui está um exemplo de uso da integração do New Relic Logrus para o logging do agente:
Importe os pacotes necessários:
import ("os""github.com/newrelic/go-agent/v3/integrations/nrlogrus""github.com/newrelic/go-agent/v3/newrelic""github.com/sirupsen/logrus")Configure o agente Go para usar o Logrus para o logging do 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 aplicação (logs no contexto)
Use esta integração para enviar as mensagens de log do Logrus da sua aplicação para o New Relic com correlação automática de traces. Isso habilita logs no contexto, permitindo que você veja mensagens de log relacionadas aos seus erros e traces diretamente na interface do usuário do seu aplicativo.
Integração: logcontext-v2/nrlogrus
Aqui está um exemplo de uso da integração New Relic Logrus para o logging de aplicativos:
Importe os pacotes necessários:
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 o Logrus para usar o formatador do 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{}))Use o logger em sua aplicação com contexto de transação:
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 mais exemplos, consulte os exemplos do logcontext-v2/nrlogrus.
Outras integrações de logging suportadas
Além do Logrus, a New Relic oferece integrações para várias outras bibliotecas de logging populares em Go:
Integrações de logging do Agente
Essas integrações enviam as mensagens de depuração internas do agente Go para o seu framework de logging:
- nrzap - Integração com o logger Zap da Uber
- nrslog - Integração com o pacote
log/slogda biblioteca padrão do Go - nrzerolog - Integração com Zerolog
- nrlogxi - Integração com Logxi
Integrações de logs no contexto
Estas integrações habilitam logs no contexto para os logs da sua aplicação:
- logcontext-v2/zerologWriter - Envie mensagens de log do Zerolog para o New Relic com correlação de rastreamento
- logcontext-v2/logWriter - Envie mensagens do pacote
logda biblioteca padrão para o New Relic com correlação de rastreamento
Cada integração segue um padrão semelhante aos exemplos do Logrus acima. Consulte os respectivos repositórios do GitHub para instruções detalhadas de uso e exemplos.
Visualize o log do seu APM e dados de infraestrutura
Com logs no contexto, você pode ver mensagens de log relacionadas aos seus erros e traces diretamente na interface do seu aplicativo. Você também pode visualizar logs no contexto de seus dados de infraestrutura, como clusters Kubernetes. Não é necessário alternar para outra página da interface do usuário.
Para habilitar logs no contexto, use uma das integrações de logs no contexto listadas acima. Para o Logrus especificamente, consulte a integração logcontext-v2/nrlogrus.