zapx

package module
v0.0.0-...-bdfd51f Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2023 License: MIT Imports: 12 Imported by: 0

README

zapx

Based on uber-go/zap, log caching and redis/kafka sink implemented in Go

Doc

zapx ( Please read the uber-go/zap documentation first. )

Quick Start

Using redis sink

go get github.com/jeffzhangme/zapx
stderr := zapx.SinkURL{url.URL{Opaque: "stderr"}}
sinkUrl := zapx.SinkURL{url.URL{Scheme: zapx.SchemeRedis, Host: "127.0.0.1:6379", RawQuery: "db=0&type=list&key=log:for:test"}}
logger, _ := zapx.NewCachedLoggerConfig().AddSinks(stderr, sinkUrl).Build()
defer logger.Flush(nil)
logger.Info("key", zap.String("k", "v"))

Log example

{
    "key": {
        "level": "info",
        "ts": 1546572659.1465247,
        "k": "v"
    },
    "level": "info",
    "ts": 1546572659.1465852
}

Documentation

Index

Constants

View Source
const (
	SchemeRedis = "redis"
	SchemeKafka = "kafka"
)

Variables

View Source
var (

	// GetBufPool retrieves a buffer from the pool, creating one if necessary.
	GetBufPool = _pool.Get
)

Functions

func InitKafkaSink

func InitKafkaSink(u *url.URL) (zap.Sink, error)

InitKafkaSink create kafka sink instance

func InitRedisSink

func InitRedisSink(u *url.URL) (zap.Sink, error)

InitRedisSink init redis sink

Types

type CachedLogConfig

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

CachedLogConfig cached log config

func NewCachedLoggerConfig

func NewCachedLoggerConfig() CachedLogConfig

NewCachedLoggerConfig create logger config

func (CachedLogConfig) AddSinks

func (cl CachedLogConfig) AddSinks(url ...SinkURL) CachedLogConfig

AddSinks add sinks

func (CachedLogConfig) Build

func (cl CachedLogConfig) Build() (*CachedLogger, error)

Build create logger

func (CachedLogConfig) EncoderConfig

func (cl CachedLogConfig) EncoderConfig(econfig zapcore.EncoderConfig) CachedLogConfig

EncoderConfig set encoder config

func (CachedLogConfig) Env

func (cl CachedLogConfig) Env(env ENV) CachedLogConfig

Env set env

func (CachedLogConfig) Level

func (cl CachedLogConfig) Level(level zapcore.Level) CachedLogConfig

Level set level

type CachedLogger

type CachedLogger struct {
	*zap.Logger
}

CachedLogger cached logger

func (*CachedLogger) Add

func (p *CachedLogger) Add(fields ...zap.Field)

Add add kv pair in root

func (*CachedLogger) CachedSugar

func (p *CachedLogger) CachedSugar() *CachedSugaredLogger

CachedSugar get sugared logger from cached logger

func (*CachedLogger) Flush

func (p *CachedLogger) Flush()

Flush flush cached log

type CachedSugaredLogger

type CachedSugaredLogger struct {
	*zap.SugaredLogger
}

CachedSugaredLogger cached logger struct

func (*CachedSugaredLogger) DeCachedSugar

func (p *CachedSugaredLogger) DeCachedSugar() *CachedLogger

DeCachedSugar get cached logger from sugared logger

func (*CachedSugaredLogger) Flush

func (p *CachedSugaredLogger) Flush()

Flush flush cached sugar log

type ENV

type ENV int

ENV env

const (
	// DEV dev
	DEV ENV = iota
	// TEST test
	TEST
	// PROD prod
	PROD
)

type MultiError

type MultiError []error

MultiError multiple error

func (MultiError) Error

func (p MultiError) Error() string

type SinkURL

type SinkURL struct {
	url.URL
}

SinkURL sink url

Jump to

Keyboard shortcuts

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