sugar

package module
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2022 License: MIT Imports: 1 Imported by: 17

README

sugar

中文文档

more simple logger which package sugared zap. Please learn zap first if you want advanced using.

something you should know

  • sugar use zap.NewDevelopmentConfig() as default config, which use console as encoding style,
  • InitDevelopmentSugar() set encoding being json instead of console, which is practically better for docker's json logger plugin.

Leveled method

all methods of zap:

  • Debug/Debugf
  • Info/Infof
  • Warn/Warnf
  • Error/Errorf
  • Fatal/Fatalf
  • Panic/Panicf

logs looking

I recommend zap mostly because of its beautiful logs looking.

looking #1

Development mode with console style printing.

2019-06-10T09:13:03.672+0800    DEBUG   default/main.go:7       default development sugar of chalvern   {"unit": "main"}
2019-06-10T09:13:03.672+0800    INFO    default/main.go:20      log of myCustomLogger info      {"unit": "my_custom_logger"}
2019-06-10T09:13:03.672+0800    WARN    default/main.go:21      log of myCustomLogger warn      {"unit": "my_custom_logger"}
github.com/chalvern/sugar.(*Logger).Warn
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/logger.go:51
main.myCustomLogger
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:21
main.main
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:8
runtime.main
        /usr/local/go/src/runtime/proc.go:200
2019-06-10T09:13:03.672+0800    INFO    default/main.go:26      log of myCustomLogger2 info     {"unit": "my_custom_logger_2"}
2019-06-10T09:13:03.672+0800    WARN    default/main.go:27      log of myCustomLogger2 warn     {"unit": "my_custom_logger_2"}
github.com/chalvern/sugar.(*Logger).Warn
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/logger.go:51
main.myCustomLogger2
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:27
main.main
        /Users/Chalvern/developer/golang/src/github.com/chalvern/sugar/examples/default/main.go:9
runtime.main
        /usr/local/go/src/runtime/proc.go:200
looking #2

Production mode with json style printing (Development mode can also has json stype printing, more see something you should know )

{"level":"info","ts":1560129183.672966,"caller":"default/main.go:13","msg":"default production sugar of chalvern","unit":"main"}
{"level":"info","ts":1560129183.673015,"caller":"default/main.go:20","msg":"log of myCustomLogger info","unit":"my_custom_logger"}
{"level":"warn","ts":1560129183.6730392,"caller":"default/main.go:21","msg":"log of myCustomLogger warn","unit":"my_custom_logger"}
{"level":"info","ts":1560129183.673059,"caller":"default/main.go:26","msg":"log of myCustomLogger2 info","unit":"my_custom_logger_2"}
{"level":"warn","ts":1560129183.673182,"caller":"default/main.go:27","msg":"log of myCustomLogger2 warn","unit":"my_custom_logger_2"}

example

you can find example in examples.

default sugar
// cat ./examples/default/main.go
package main

import "github.com/chalvern/sugar"

func main() {

	sugar.Debug("default development sugar of chalvern")
	myCustomLogger()
	myCustomLogger2()

	sugar.InitProductionSugar()
	sugar.Debug("should not be printed")
	sugar.Info("default production sugar of chalvern")
	myCustomLogger()
	myCustomLogger2()
}

func myCustomLogger() {
	myLogger := sugar.NewLoggerOf("my_custom_logger")
	myLogger.Info("log of myCustomLogger info")
	myLogger.Warn("log of myCustomLogger warn")
}

func myCustomLogger2() {
	myLogger := sugar.NewLoggerOf("my_custom_logger_2")
	myLogger.Info("log of myCustomLogger2 info")
	myLogger.Warn("log of myCustomLogger2 warn")
}
custom sugar
package main

import (
	"github.com/chalvern/sugar"
	"go.uber.org/zap"
)

func main() {
	config := zap.NewProductionConfig()
	config.OutputPaths = []string{"./production.log"}
	config.ErrorOutputPaths = []string{"./production_err.log"}
	sugar.SetSugar(&config)

	sugar.Info("main info")

	myCustomLogger()
}

func myCustomLogger() {
	myLogger := sugar.NewLoggerOf("my_custom_logger")
	myLogger.Info("log of myCustomLogger info")
	myLogger.Warn("log of myCustomLogger warn")
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(args ...interface{})

Debug package mainLogger

func Debugf

func Debugf(template string, args ...interface{})

Debugf package mainLogger

func Debugw added in v1.2.0

func Debugw(msg string, keysAndValues ...interface{})

Debugw package mainLogger

func Error

func Error(args ...interface{})

Error package mainLogger

func Errorf

func Errorf(template string, args ...interface{})

Errorf package mainLogger

func Errorw added in v1.2.0

func Errorw(msg string, keysAndValues ...interface{})

Errorw package mainLogger

func Fatal

func Fatal(args ...interface{})

Fatal package mainLogger

func Fatalf

func Fatalf(template string, args ...interface{})

Fatalf package mainLogger

func Fatalw added in v1.2.0

func Fatalw(msg string, keysAndValues ...interface{})

Fatalw package mainLogger

func GetZapLogger

func GetZapLogger() *zap.Logger

GetZapLogger get zap's logger for special using

func Info

func Info(args ...interface{})

Info package mainLogger

func Infof

func Infof(template string, args ...interface{})

Infof package mainLogger

func Infow added in v1.2.0

func Infow(msg string, keysAndValues ...interface{})

Infow package mainLogger

func InitDevelopmentSugar

func InitDevelopmentSugar(opts ...zap.Option)

InitDevelopmentSugar for development encoding being json instead of console, which is practically better for docker's json logger,

func InitProductionSugar

func InitProductionSugar(opts ...zap.Option)

InitProductionSugar for production

func Panic

func Panic(args ...interface{})

Panic package mainLogger

func Panicf

func Panicf(template string, args ...interface{})

Panicf package mainLogger

func Panicw added in v1.2.0

func Panicw(msg string, keysAndValues ...interface{})

Panicw package mainLogger

func SetSugar

func SetSugar(config *zap.Config, opts ...zap.Option)

SetSugar set sugar's logger

func Warn

func Warn(args ...interface{})

Warn package mainLogger

func Warnf

func Warnf(template string, args ...interface{})

Warnf package mainLogger

func Warnw added in v1.2.0

func Warnw(msg string, keysAndValues ...interface{})

Warnw package mainLogger

Types

type Logger

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

Logger 定制化 sugar

func NewLoggerOf

func NewLoggerOf(component string) *Logger

NewLoggerOf logger with component field

func (*Logger) Debug

func (l *Logger) Debug(args ...interface{})

Debug package sugar of zap

func (*Logger) Debugf

func (l *Logger) Debugf(template string, args ...interface{})

Debugf package sugar of zap

func (*Logger) Debugw added in v1.2.0

func (l *Logger) Debugw(msg string, keysAndValues ...interface{})

Debugw package sugar of zap

func (*Logger) Error

func (l *Logger) Error(args ...interface{})

Error package sugar of zap

func (*Logger) Errorf

func (l *Logger) Errorf(template string, args ...interface{})

Errorf package sugar of zap

func (*Logger) Errorw added in v1.2.0

func (l *Logger) Errorw(msg string, keysAndValues ...interface{})

Errorw package sugar of zap

func (*Logger) Fatal

func (l *Logger) Fatal(args ...interface{})

Fatal package sugar of zap

func (*Logger) Fatalf

func (l *Logger) Fatalf(template string, args ...interface{})

Fatalf package sugar of zap

func (*Logger) Fatalw added in v1.2.0

func (l *Logger) Fatalw(msg string, keysAndValues ...interface{})

Fatalw package sugar of zap

func (*Logger) Info

func (l *Logger) Info(args ...interface{})

Info package sugar of zap

func (*Logger) Infof

func (l *Logger) Infof(template string, args ...interface{})

Infof package sugar of zap

func (*Logger) Infow added in v1.2.0

func (l *Logger) Infow(msg string, keysAndValues ...interface{})

Infow package sugar of zap

func (*Logger) Panic

func (l *Logger) Panic(args ...interface{})

Panic package sugar of zap

func (*Logger) Panicf

func (l *Logger) Panicf(template string, args ...interface{})

Panicf package sugar of zap

func (*Logger) Panicw added in v1.2.0

func (l *Logger) Panicw(msg string, keysAndValues ...interface{})

Panicw package sugar of zap

func (*Logger) Warn

func (l *Logger) Warn(args ...interface{})

Warn package sugar of zap

func (*Logger) Warnf

func (l *Logger) Warnf(template string, args ...interface{})

Warnf package sugar of zap

func (*Logger) Warnw added in v1.2.0

func (l *Logger) Warnw(msg string, keysAndValues ...interface{})

Warnw package sugar of zap

func (*Logger) With

func (l *Logger) With(args ...interface{}) *zap.SugaredLogger

With adds a variadic number of fields to the logging context. see https://github.com/uber-go/zap/blob/v1.10.0/sugar.go#L91

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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