Categorygithub.com/rafapcarvalho/logtracer
repositorypackage
0.0.0-20241206201913-3da0c1807cdb
Repository: https://github.com/rafapcarvalho/logtracer.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

logtracer

Esta biblioteca em Golang será um wrapper sobre o logger oficial do Go (slog) e OpenTelemetry, projetada para fornecer uma solução unificada para logs e instrumentação de tracing em aplicações HTTP e gRPC.

Mods de uso do StartSpan:

  1. Sem ID personalizado:
ctx := logtracer.StartSpan(ctx, "nameSpan")
defer logtracer.EndSpan(ctx)

logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem ID personalizado")
logtracer.AddAttribute(ctx, "key3", "value3")
  1. Com ID personalizado:
ctx, span := logtracer.StartSpan(ctx, "nameSpan", logtracer.WithID("customID123"))
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com ID personalizado")
logtracer.AddAttribute(ctx, "key3", "value3
  1. Com ID personalizado e opções de tracer adicionais:
ctx, span := logtracer.StartSpan(ctx, "nameSpan", logtracer.WithID("customID123"), logtracer.WithAttribute("key","value"))
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com ID personalizado")
logtracer.AddAttribute(ctx, "key3", "value3
  1. Apenas com opções de tracer adicionais:
ctx, span := logtracer.StartSpan(ctx, "nameSpan", tracer.WithAttributes(attribute.String("key","value")))
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem ID personalizado")
logtracer.AddAttribute(ctx, "key3", "value3

Nova funcionalidade WithoutTrace(), da a opção de não gerar um trace mesmo com a configuração global de carregamento com trace. Pode-se usar da seguinte maneira:

  1. Log padrão com trace
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com trace")
  1. Log sem trace
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem trace").WithoutTrace()
  1. Log padrão com trace e argumentos
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com trace", "arg1", 1, "arg2", "string")
  1. Log sem trace e argumentos
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem trace", "arg1", 1, "arg2", "string").WithoutTrace()
  1. Log formatado com trace
logtracer.SrvcLog.Infof(ctx, "mensagem formatada: %s", "com trace")
  1. Log formatado sem trace
logtracer.SrvcLog.Infof(ctx, "mensagem formatada: %s", "sem trace").WithoutTrace()