otel

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package otel provides OpenTelemetry log bridging for zerowrap.

This is an optional sub-package that adds OpenTelemetry dependencies. Only import it if you need to forward zerolog events to OpenTelemetry.

Usage

import (
    "github.com/bnema/zerowrap"
    "github.com/bnema/zerowrap/otel"
)

// Create logger with OTel hook
log := zerowrap.New(zerowrap.Config{
    Level:  "info",
    Format: "console",
}).Hook(otel.NewHook("my-service"))

// Attach to context
ctx := zerowrap.WithCtx(context.Background(), log)

// Logs now flow to both zerolog output AND OpenTelemetry
zerowrap.FromCtx(ctx).Info().Msg("hello world")

Custom Provider

To use a specific logger provider instead of the global one:

provider := // your OTel logger provider
hook := otel.NewHookWithProvider(provider, "my-service")
log := zerowrap.New(cfg).Hook(hook)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hook

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

Hook is a zerolog.Hook that bridges logs to OpenTelemetry.

func NewHook

func NewHook(serviceName string) *Hook

NewHook creates a hook that forwards zerolog events to OpenTelemetry. Uses the global logger provider.

func NewHookWithProvider

func NewHookWithProvider(provider log.LoggerProvider, serviceName string) *Hook

NewHookWithProvider creates a hook with a specific logger provider.

func (*Hook) Run

func (h *Hook) Run(e *zerolog.Event, level zerolog.Level, msg string)

Run implements zerolog.Hook interface. It forwards log events to the OpenTelemetry logger.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL