github.com/go-srvc/mods/logmod
go get github.com/go-srvc/mods/logmod@v1.11.0
README
logmod
logmod exports logs to the otel endpoint and flushes log buffers before the application exits. After logmod.New() runs, slog calls are routed through the otelslog bridge.
package main
import (
"fmt"
"log/slog"
"net/http"
"os"
"github.com/go-srvc/mods/httpmod"
"github.com/go-srvc/mods/logmod"
"github.com/go-srvc/mods/sigmod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
logmod.New(),
sigmod.New(os.Interrupt),
httpmod.New(
httpmod.WithAddr(":8080"),
httpmod.WithHandler(http.HandlerFunc(hello)),
),
)
}
func hello(w http.ResponseWriter, r *http.Request) {
slog.InfoContext(r.Context(), "request", "path", r.URL.Path)
fmt.Fprint(w, "ok")
}
Overview
Package logmod provides OpenTelemetry log provider as a module.
Constants
const (
ErrMissingProvider = errStr("log provider not set")
ErrFlushFailed = errStr("failed to flush remaining logs")
)const ID = "logmod"Types
type Opt
type Opt func(*Provider) errortype Provider
type Provider struct {
// contains filtered or unexported fields
}func (*Provider) ID
func (p *Provider) ID() stringfunc (*Provider) Init
func (p *Provider) Init() errorfunc (*Provider) Run
func (p *Provider) Run() errorfunc (*Provider) Stop
func (p *Provider) Stop() errorExamples
ExampleNew
package main
import (
"github.com/go-srvc/mods/logmod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
logmod.New(),
)
}