Categorygithub.com/libercapital/liber-logger-go
modulepackage
1.1.3
Repository: https://github.com/libercapital/liber-logger-go.git
Documentation: pkg.go.dev

# README

Welcome to liberlogger 👋

Centralized logs to yours applications.

How to use


go get github.com/libercapital/liber-logger-go.git

Basic logs

package main

import "github.com/libercapital/liber-logger-go.git"

func main() {
    ctx := Context.Background()

    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    liberlogger.Info(ctx).Msg("send a msg with info level")

    liberlogger.Debug(ctx).Msg("send a msg with debug level")

    errorTest := errors.New("error test")
    liberlogger.Error(ctx, errorTest).Msg("send a msg with error level")

    liberlogger.Warn(ctx).Msg("send a msg with warn level")

    errorTest = errors.New("fatal error test")
    liberlogger.Fatal(ctx, errorTest).Msg("send a msg with error level")
}

Echo V4

Unredacted
package main

import(
    "github.com/libercapital/liber-logger-go.git"
    "github.com/labstack/echo/v4"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    e := echo.New()

    e.Use(liberlogger.EchoV4([]string{"/health"}))
}
Redacted
package main

import(
    "github.com/libercapital/liber-logger-go.git"
    "github.com/labstack/echo/v4"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    e := echo.New()

    e.Use(liberlogger.EchoV4Redacted(liberlogger.DefaultKeys, []string{}))

    //aditional keys
    redactKeys := liberlogger.DefaultKeys

    copy(redactKeys, []string{"reference_uuid", "document_number"})

    e.Use(liberlogger.EchoV4Redacted(redactKeys, []string{"/health"}))
}

HTTP Client

Unredacted
package main

import (
    "net/http"

    "github.com/libercapital/liber-logger-go.git"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    httpClient := &http.Client{
        Transport: liberlogger.HttpClient{
            Proxied:      http.DefaultTransport,
        },
    }

    httpClient.Get("https://google.com.br")
}
Redacted
package main

import (
    "net/http"

    "github.com/libercapital/liber-logger-go.git"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    httpClient := &http.Client{
        Transport: liberlogger.HttpClient{
            Proxied:      http.DefaultTransport,
            RedactedKeys: liberlogger.DefaultKeys,
        },
    }

    httpClient.Get("https://google.com.br")
}

Gorilla Mux

Unredacted
package main

import (
    "bytes"
    "fmt"
    "net/http"

    "github.com/gorilla/mux"
    "github.com/libercapital/liber-logger-go.git"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    r := mux.NewRouter()

    r.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(rw, "ok")
    })

    r.Use(liberlogger.GorillaMux([]string{"/health"}))

    http.ListenAndServe(":8085", r)
}
Redacted
package main

import (
    "bytes"
    "fmt"
    "net/http"

    "github.com/gorilla/mux"
    "github.com/libercapital/liber-logger-go.git"
)

func main() {
    liberlogger.Init(os.Getenv("LOG_LEVEL"))

    r := mux.NewRouter()

    r.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(rw, "ok")
    })

    r.Use(liberlogger.GorillaMuxRedacted(liberlogger.DefaultKeys, []string{"/health"}))

    http.ListenAndServe(":8085", r)
}

Starting Data Dog Span and getting a Context

Controller method

ctx, span := liberlogger.StartContextAndTrace(liberlogger.StartContextAndTraceConfig{
			Ctx: c.Request().Context(),
		})
		defer span.Finish()

Amqp consumer method

ctx, span := liberlogger.StartContextAndTrace(liberlogger.StartContextAndTraceConfig{
			ServiceName: "service-name",
			OperationName: "invoice.cmd.creation",
		})
		defer span.Finish()

# Packages

No description provided by the author

# Functions

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

# Constants

No description provided by the author

# Variables

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

# Structs

This type implements the http.RoundTripper interface.
LogFieldsKey Key used for access the Value in the context.Context.
No description provided by the author