repositorypackage
0.0.0-20241206201913-3da0c1807cdb
Repository: https://github.com/rafapcarvalho/logtracer.git
Documentation: pkg.go.dev
# 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:
- 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")
- 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
- 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
- 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:
- Log padrão com trace
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com trace")
- Log sem trace
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem trace").WithoutTrace()
- Log padrão com trace e argumentos
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log com trace", "arg1", 1, "arg2", "string")
- Log sem trace e argumentos
logtracer.SrvcLog.Info(ctx, "Esta é uma mensagem de log sem trace", "arg1", 1, "arg2", "string").WithoutTrace()
- Log formatado com trace
logtracer.SrvcLog.Infof(ctx, "mensagem formatada: %s", "com trace")
- Log formatado sem trace
logtracer.SrvcLog.Infof(ctx, "mensagem formatada: %s", "sem trace").WithoutTrace()