klynlog

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

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

Go to latest
Published: Mar 9, 2020 License: MIT Imports: 13 Imported by: 1

README

klyn-log

klyn-log is structured, persistent logging for Go.

how to use

import(
    klog "git.yusank.cn/yusank/klyn-log"
)

var logger klog.Logger
func main() {
    // default
    logger = klog.DefaultLogger()

    // or 
    conf := &klog.LoggerConfig{
        // custom
    }

    logger = klog.NewLogger(conf)

    logger.Warn(map[string]interface{}{
				"name":   "hello world",
				"userId": 1234,
				"event": map[string]interface{}{
					"gameId": "dddjs",
				},
			})
}    
before install
  • go > 1.7
how to install
$ go get git.yusank.cn/yusank/klyn-log

testing

test with three mode, ...Mode1:FlushModeEveryLog,...Mode2:FlushModeByDuration,...Mode3:FlushModeBySize

-8 means run on 8 core cpu machine

result:

$ go test -bench=. -run=^$
goos: darwin
goarch: amd64
pkg: git.yusank.cn/yusank/klyn-log
BenchmarkNewLoggerMode1-8         200000              8799 ns/op
BenchmarkNewLoggerMode2-8        1000000              1912 ns/op
BenchmarkNewLoggerMode3-8        1000000              1853 ns/op
PASS
ok      git.yusank.cn/yusank/klyn-log   5.681s

suggest use mode 2 or 3 for now .

Authors

license

MIT license

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type KlynLog

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

KlynLog - implement Logger and provide cache

func (*KlynLog) Any

func (kl *KlynLog) Any(level Level, j interface{})

Any - custom level log level should be valid

func (*KlynLog) Debug

func (kl *KlynLog) Debug(j interface{})

Debug - debug level log

func (*KlynLog) Error

func (kl *KlynLog) Error(j interface{})

Error - error level info

func (*KlynLog) Fatal

func (kl *KlynLog) Fatal(j interface{})

Fatal - fatal level info

func (*KlynLog) Info

func (kl *KlynLog) Info(j interface{})

Info - info level log

func (*KlynLog) MaintainIOWriter

func (kl *KlynLog) MaintainIOWriter()

MaintainIOWriter - maintain kl io writer, in case opened and closed too frequently. only run flush every log mode

func (*KlynLog) OFF

func (kl *KlynLog) OFF()

OFF - off all level log

func (*KlynLog) Trace

func (kl *KlynLog) Trace(j interface{})

Trace - trace level log

func (*KlynLog) Warn

func (kl *KlynLog) Warn(j interface{})

Warn - warn level info

type Level

type Level uint8

Level - log level

const (
	// LoggerLevelTrace - log trace level
	LoggerLevelTrace Level = iota + 1
	// LoggerLevelDebug - log debug level
	LoggerLevelDebug
	// LoggerLevelInfo - log info level
	LoggerLevelInfo
	// LoggerLevelWarn - log warn level
	LoggerLevelWarn
	// LoggerLevelError - log error level
	LoggerLevelError
	// LoggerLevelFatal - log fatal level
	LoggerLevelFatal
)

func (Level) String

func (l Level) String() string

String - return level name

type LogFunc

type LogFunc func(j interface{})

type Logger

type Logger interface {
	Trace(j interface{})
	Debug(j interface{})
	Info(j interface{})
	Warn(j interface{})
	Error(j interface{})
	Fatal(j interface{})
	Any(l Level, j interface{})
	OFF()
}

Logger provide leveled log

func DefaultLogger

func DefaultLogger() Logger

DefaultLogger - get default logger

func NewLogger

func NewLogger(l *LoggerConfig) Logger

NewLogger return Logger

type LoggerConfig

type LoggerConfig struct {
	FlushMode int // flush dick mode
	IsDebug   bool
	Prefix    string
	// contains filtered or unexported fields
}

LoggerConfig - logger config

Directories

Path Synopsis
lib

Jump to

Keyboard shortcuts

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