zapadapter

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package zapadapter provides a logger adapter for the zap logging library.

This adapter enables using zap as a backend for logger.Logger, bridging the zap API with the logger abstraction. For documentation on the logger API itself, see the dev.gaijin.team/go/golib/logger package.

Basic Usage

Create a zap logger, wrap it in an adapter, and use with logger.Logger:

import (
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
	"dev.gaijin.team/go/golib/logger"
	"dev.gaijin.team/go/golib/logger/zapadapter"
)

config := zap.NewProductionConfig()
config.Level = zap.NewAtomicLevelAt(zapcore.DebugLevel)
zl, _ := config.Build()

adapter := zapadapter.New(zl)
log := logger.New(adapter, logger.LevelInfo)

log.Info("server started", fields.F("port", 8080))

IMPORTANT: Configure zap with the lowest level (DebugLevel or lower) to ensure all logs are passed to the adapter. Level filtering is performed by logger.Logger, not by zap. If zap is set to a higher level (e.g., WarnLevel), it will filter out info and debug logs if they would be sent by logger.Logger.

Custom Level Mapping

By default, logger levels map to zap levels using DefaultLogLevelMapper. You can provide a custom mapper if you need different level mapping behavior:

customMapper := func(level int) zapcore.Level {
	switch level {
	case logger.LevelError:
		return zapcore.ErrorLevel + 1  // Map errors to higher severity
	default:
		return zapcore.InfoLevel
	}
}

adapter := zapadapter.New(
	zl,
	zapadapter.WithLogLevelMapper(customMapper),
)

Note that zap does not have a separate trace level, so both LevelDebug and LevelTrace map to zapcore.DebugLevel by default.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultLogLevelMapper added in v0.8.0

func DefaultLogLevelMapper(level int) zapcore.Level

DefaultLogLevelMapper is a default implementation of LogLevelMapper that maps log levels from logger.Logger to appropriate zapcore.Level.

Note that zap does not have a separate trace level, so both LevelDebug and LevelTrace map to zapcore.DebugLevel.

Types

type Adapter

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

Adapter of zap logger for logger.Logger.

This adapter guarantees support of stock logger's levels.

func New

func New(lgr *zap.Logger, opts ...Option) *Adapter

New creates new logging adapter using provided zap.Logger.

func (*Adapter) Flush

func (a *Adapter) Flush() error

func (*Adapter) Log

func (a *Adapter) Log(level int, msg string, fs ...fields.Field)

func (*Adapter) WithFields

func (a *Adapter) WithFields(fs ...fields.Field) logger.Adapter

type LogLevelMapper added in v0.8.0

type LogLevelMapper func(level int) zapcore.Level

LogLevelMapper is a function that maps logger levels from logger.Logger to zapcore.Level.

type Option added in v0.8.0

type Option func(*Adapter)

func WithLogLevelMapper added in v0.8.0

func WithLogLevelMapper(fn LogLevelMapper) Option

WithLogLevelMapper sets custom log level mapper for the adapter.

Jump to

Keyboard shortcuts

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