logger

package module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2021 License: MIT Imports: 7 Imported by: 0

README

logger

Register

  • Register once, ues anyware.
  • switch debug level on code running.

Basic Usage

import "github.com/monaco-io/logger"

func run(){
    logger.T("key", "val")
    logger.I("msg", "key", "val")
    logger.D("msg", "key", "val")
    logger.W("msg", "key", "val")
    logger.E("msg", "key", "val")
}
// 2020-06-13T23:06:11.339+0800    INFO    logger/level_test.go:107   dev    {"key": "val"}
// 2020-05-23T19:57:03.903+0800    INFO    logger/level_test.go:9     msg    {"key": "val"}
// 2020-05-23T19:57:03.903+0800    WARN    logger/level_test.go:11    msg    {"key": "val"}
// 2020-05-23T19:57:03.903+0800    ERROR   logger/level_test.go:12    msg    {"key": "val"}
// github.com/monaco-io/logger._handler
//     /root/code/logger/core.go:13
// github.com/monaco-io/logger.E
//     /root/code/logger/level.go:16
// github.com/monaco-io/logger.TestD
//     /root/code/logger/level_test.go:12
// testing.tRunner
//     /usr/local/go/src/testing/testing.go:991

Define Service Name

import "github.com/monaco-io/logger"

func init(){
    logger.RegisterServiceName("Monaco")
    I("msg", "key", "val")
}

// 2020-05-23T23:22:01.718+0800   INFO   Monaco   logger/level_test.go:80   msg   {"key": "val"}
// {"L":"INFO","T":"2020-05-23T23:22:01.718+0800","N":"Monaco","C":"logger/level_test.go:80","M":"msg","key":"val"}

Enable Debug dynamic

import "github.com/monaco-io/logger"

func init(){
    logger.D("msg", "key", "val")
    logger.RegisterDebug(true)
    logger.D("msg", "key2", "val2")
}

//  {"L":"DEBUG","T":"2020-05-23T19:58:59.323+0800","C":"logger/level_test.go:28","M":"msg","key2":"val2"}

New writer

import "github.com/monaco-io/logger"

func init(){
    logger.RegisterWriter(new(slave))
    logger.I("msg", "key", "val")
}

type slave struct{}

func (slave) Write(p []byte) (n int, err error) {
    // do some with log data
    fmt.Println("slave: ", string(p))
    return
}

// 2020-05-23T21:04:16.065+0800    INFO    logger/level_test.go:49    msg    {"key": "val"}
// slave:  {"L":"INFO","T":"2020-05-23T21:04:16.065+0800","C":"logger/level_test.go:49","M":"msg","key":"val"}

New error writer

import "github.com/monaco-io/logger"

func init(){
    logger.RegisterErrorWriter(new(slave))
    logger.I("msg", "key", "val")
    logger.E("msg", "key", "val")
}

type slave struct{}

func (slave) Write(p []byte) (n int, err error) {
    // do some with log data
    fmt.Println("slave: ", string(p))
    return
}

// 2020-05-23T21:04:16.065+0800    INFO    logger/level_test.go:49    msg    {"key": "val"}
// 2020-05-23T21:04:16.065+0800    ERROR    logger/level_test.go:49    msg    {"key": "val"}
// slave:  {"L":"ERROR","T":"2020-05-23T21:04:16.065+0800","C":"logger/level_test.go:49","M":"msg","key":"val"}

Micro Service RequestID

import "github.com/monaco-io/logger"

func init(){
    ctx := context.TODO()
    logger.WithContext(&ctx).I(tt.args.msg, tt.args.keyValues...)
    logger.WithContext(&ctx).I(tt.args.msg, tt.args.keyValues...)
}

// 2020-12-17T16:31:45.509+0800 INFO logger/level_test.go:137 msg {"x-request-id": "981afd44-2614-4320-8456-879d07d1aa1d", "key1": "val1", "key2": "val2"}
// 2020-12-17T16:31:45.509+0800 INFO logger/level_test.go:137 msg {"x-request-id": "981afd44-2614-4320-8456-879d07d1aa1d", "key1": "val1", "key2": "val2"}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func D

func D(msg string, keyValues ...interface{})

func E

func E(msg string, keyValues ...interface{})

func F added in v0.0.3

func F(msg string, keyValues ...interface{})

func I

func I(msg string, keyValues ...interface{})

func Log added in v0.0.8

func Log(keyValues ...interface{})

func P added in v0.0.2

func P(msg string, keyValues ...interface{})

func RegisterDebug added in v0.0.2

func RegisterDebug(debug bool)

func RegisterErrorWriter added in v0.0.5

func RegisterErrorWriter(writers ...io.Writer)

func RegisterServiceName added in v0.0.4

func RegisterServiceName(serviceName string)

func RegisterWriter

func RegisterWriter(writers ...io.Writer)

func W

func W(msg string, keyValues ...interface{})

func WithContext added in v0.0.8

func WithContext(ctx *context.Context) *contextLogger

Types

This section is empty.

Jump to

Keyboard shortcuts

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