wangming1993 / issues

记录学习中的一些问题,体会与心得 https://wangming1993.github.io/issues
8 stars 4 forks source link

go.uber.org/zap #80

Open wangming1993 opened 6 years ago

wangming1993 commented 6 years ago
package log

import (
    "context"
    "os"

    "go.uber.org/zap"
    "go.uber.org/zap/zapcore"
)

type Logger struct {
    *zap.SugaredLogger

    category string

    fields []interface{}
}

var logger *Logger

func init() {
    logger = NewLogger("wechat-proxy")
}

func NewLogger(category string) *Logger {
    config := zap.NewProductionEncoderConfig()
    config.MessageKey = "message"
    encoder := zapcore.NewJSONEncoder(config)
    core := zapcore.NewCore(encoder, os.Stdout, zap.InfoLevel)
    return &Logger{
        category:      category,
        fields:        []interface{}{"type", "service", "category", category},
        SugaredLogger: zap.New(core).Sugar(),
    }
}

func CtxInfo(ctx context.Context, msg string) {
    logger.Infow(msg, logger.fields...)
}