github.com/go-srvc/mods/logmod
go get github.com/go-srvc/mods/logmod@v1.0.2
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")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(),
)
}