go-srvc / mods / logmod

github.com/go-srvc/mods/logmod

pkg.go.dev source
go get github.com/go-srvc/mods/logmod@v1.0.0

README

logmod

Using logmod takes care of exporting logs to otel endpoint and flushing log buffers before the application exits.

package main

import (
	"log/slog"
	"time"

	"github.com/go-srvc/mods/logmod"
	"github.com/go-srvc/mods/tickermod"
	"github.com/go-srvc/srvc"
)

func main() {
	srvc.RunAndExit(
		logmod.New(),
		tickermod.New(
			tickermod.WithInterval(5*time.Second),
			tickermod.WithFunc(func() {
				// Slog uses now otelslog bridge configured by logmod.
				slog.Info("Hello, World!")
			}),
		),
	)
}

Overview

Package logmod provides OpenTelemetry trace provider as a module.

Constants

const ErrMissingProvider = errStr("log provider not set")
const ID = "logmod"

Types

type Opt

type Opt func(*Provider) error

type Provider

type Provider struct {
	// contains filtered or unexported fields
}

func (*Provider) ID

func (p *Provider) ID() string

func (*Provider) Init

func (p *Provider) Init() error

func (*Provider) Run

func (p *Provider) Run() error

func (*Provider) Stop

func (p *Provider) Stop() error

Examples

ExampleNew

package main

import (
	"github.com/go-srvc/mods/logmod"
	"github.com/go-srvc/srvc"
)

func main() {
	srvc.RunAndExit(
		logmod.New(),
	)
}