yetzap

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2020 License: MIT Imports: 5 Imported by: 0

README

GoDoc

yetzap

yetzap is a wrapper package for uber's zap logger while implementing the yetlog interface. It only supports a small subset of the zap logger but it should be good enough for most cases.

Install

go get -u github.com/pvormste/yetzap

Usage

env := yetenv.Develop
zaplogger, err := yetzap.NewDefaultSugaredLogger(env, "info")

if err != nil {
    // handle error
}

zaplogger.Info("started server", "port", 8080)

Custom zap logger instance

You can use an already existing zap logger:

var sugaredLogger *zap.SugaredLogger
// Create your logger

yetlogger := yetzap.WrapSugaredLogger(sugaredLogger)

Or you can provide a ConfigureSugaredFunc to the NewCustomSugaredLogger() function.

Example:

func MyLoggerConstructor(rawMinLevel string) (yetlog.Logger, error) {
	return NewCustomSugaredLogger(func() (*zap.SugaredLogger, error) {
		minLevel := zapcore.InfoLevel
		if err := minLevel.Set(strings.ToLower(rawMinLevel)); err != nil {
			return nil, err
		}

        	loggerConf := DefaultDevelopmentConfig(minLevel)
        	logger, err := loggerConf.Build()

		if err != nil {
			return nil, err
		}

		return logger.Sugar(), nil
	})
}

Documentation

Overview

package yetzap is wrapper for uber's zap logger and implements the yetlogger interface.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultDevelopmentConfig

func DefaultDevelopmentConfig(minLevel zapcore.Level) zap.Config

DefaultDevelopmentConfig returns the default development config which is used to create a default sugared logger.

func DefaultProductionConfig

func DefaultProductionConfig(minLevel zapcore.Level) zap.Config

DefaultProductionConfig returns the default production config which is used to create a default sugared logger.

func NewCustomSugaredLogger

func NewCustomSugaredLogger(zapConfigureFunc ConfigureSugaredFunc) (yetlog.Logger, error)

NewCustomSugaredLogger can be used to create a custom sugared logger by providing a ConfigureSugaredFunc function.

func NewDefaultSugaredLogger

func NewDefaultSugaredLogger(environment yetenv.Environment, rawMinLevel string) (yetlog.Logger, error)

NewDefaultSugaredLogger creates a new sugared logger with some default configurations for different environments.

func WrapSugaredLogger

func WrapSugaredLogger(sugaredLogger *zap.SugaredLogger) yetlog.Logger

WrapSugaredLogger wraps an existent sugared logger without needing to touch any configuration.

Types

type ConfigureSugaredFunc

type ConfigureSugaredFunc func() (*zap.SugaredLogger, error)

ConfigureSugaredFunc defines a function which can be used to configure a sugared logger. See function NewCustomSugaredLogger().

type SugaredLogger

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

SugaredLogger is the wrapper for the actual sugared logger.

func (SugaredLogger) Debug

func (s SugaredLogger) Debug(message string, fields ...interface{})

Debug logs a debug message with parameters.

func (SugaredLogger) Error

func (s SugaredLogger) Error(message string, fields ...interface{})

Error logs a error message with paramters.

func (SugaredLogger) Fatal

func (s SugaredLogger) Fatal(message string, fields ...interface{})

Fatal logs a fatal message with paramters.

func (SugaredLogger) Info

func (s SugaredLogger) Info(message string, fields ...interface{})

Info logs a info message with parameters.

func (SugaredLogger) NewNamedLogger

func (s SugaredLogger) NewNamedLogger(name string) yetlog.Logger

NewNamedLogger creates a new named logger.

func (SugaredLogger) Reconfigure

func (s SugaredLogger) Reconfigure(_ interface{})

Reconfigure is currently not implemented and logs a warning.

func (SugaredLogger) Warn

func (s SugaredLogger) Warn(message string, fields ...interface{})

Warn logs a warning message with parameters.

Jump to

Keyboard shortcuts

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