logger

package
v0.0.0-...-bc4c7a2 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Taken from https://github.com/psapezhka/hclog-zerolog/blob/main/wrapper.go

Index

Constants

View Source
const DefaultNameField = "hclog_name"

DefaultNameField — field hclog.Logger name will be written to.

hclog has a concept of logger name and, moreover, name inheritance (when you create named logger on top of named logger). Logger name acts like a prefix for the log message. On the other hand, zerolog operates key/value pairs to add context to messages. So, we convert the hclog logger name to key/value context pair for zerolog This is a default, can be overridden while creating wrapper with the NewWithCustomNameField

Variables

This section is empty.

Functions

func Setup

func Setup(cfg Config, output io.Writer) zerolog.Logger

Setup configures the global logger.

Types

type Config

type Config struct {
	Level       string
	Development bool
	ServiceName string
}

Config holds logger configuration

type Logger

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

func NewHCLogWrapper

func NewHCLogWrapper(logger zerolog.Logger) *Logger

New creates an instance of Logger wrapping provided zerolog.Logger.

Example of wrapping the default global zerolog logger (using hashicorp/raft as an example of lib depending on hclog.Logger)

raftLogger := log.With().Str("component", "raft").Logger()
config := raft.DefaultConfig()
config.Logger = hclogzerolog.New(raftLogger)

See:

func NewWithCustomNameField

func NewWithCustomNameField(logger zerolog.Logger, nameField string) *Logger

NewWithCustomNameField — does exactly the same as [New] but with the ability to set field (key) the hclog.Logger name will be written to.

func (*Logger) Debug

func (l *Logger) Debug(format string, args ...any)

func (*Logger) Error

func (l *Logger) Error(format string, args ...any)

func (*Logger) GetLevel

func (l *Logger) GetLevel() hclog.Level

func (*Logger) ImpliedArgs

func (l *Logger) ImpliedArgs() []any

func (*Logger) Info

func (l *Logger) Info(format string, args ...any)

func (*Logger) IsDebug

func (l *Logger) IsDebug() bool

func (*Logger) IsError

func (l *Logger) IsError() bool

func (*Logger) IsInfo

func (l *Logger) IsInfo() bool

func (*Logger) IsTrace

func (l *Logger) IsTrace() bool

func (*Logger) IsWarn

func (l *Logger) IsWarn() bool

func (*Logger) Log

func (l *Logger) Log(level hclog.Level, msg string, args ...any)

func (*Logger) Name

func (l *Logger) Name() string

func (*Logger) Named

func (l *Logger) Named(name string) hclog.Logger

func (*Logger) ResetNamed

func (l *Logger) ResetNamed(name string) hclog.Logger

func (*Logger) SetLevel

func (l *Logger) SetLevel(level hclog.Level)

func (*Logger) StandardLogger

func (l *Logger) StandardLogger(_ *hclog.StandardLoggerOptions) *log.Logger

func (*Logger) StandardWriter

func (l *Logger) StandardWriter(_ *hclog.StandardLoggerOptions) io.Writer

func (*Logger) Trace

func (l *Logger) Trace(format string, args ...any)

func (*Logger) Warn

func (l *Logger) Warn(format string, args ...any)

func (*Logger) With

func (l *Logger) With(args ...any) hclog.Logger

type ZerologWriter

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

ZerologWriter adapts zerolog to io.Writer for standard library log

func NewZeroLogWriter

func NewZeroLogWriter(logger zerolog.Logger) *ZerologWriter

func (*ZerologWriter) Write

func (w *ZerologWriter) Write(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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