logger

package module
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2020 License: MIT Imports: 7 Imported by: 2

README

go-logger

Open In GitPod GitHub code size in bytes GitHub commit activity GitHub last commit

golang logger package. This package is experimental. use at your own risk. this package combines various logger libraries from hashicorp and adds some extra features, safety checks and optimizations.

benchmark

  • go-logger implementation of gated writer vs Serf implementation (go version go1.15 linux/amd64)
Running tool: /home/gitpod/go/bin/go test -benchmem -run=^$ github.com/da-moon/go-logger -bench ^(BenchmarkSmallWriteGoLogger|BenchmarkSmallWriteSerf)$ -v
goos: linux
goarch: amd64
pkg: github.com/da-moon/go-logger
BenchmarkSmallWriteGoLogger
BenchmarkSmallWriteGoLogger/cores_1
BenchmarkSmallWriteGoLogger/cores_1-16         	   52780	     27048 ns/op	 151.43 MB/s	    5427 B/op	    1017 allocs/op
BenchmarkSmallWriteGoLogger/cores_2
BenchmarkSmallWriteGoLogger/cores_2-16         	   46780	     26178 ns/op	 156.47 MB/s	    5254 B/op	     984 allocs/op
BenchmarkSmallWriteGoLogger/cores_4
BenchmarkSmallWriteGoLogger/cores_4-16         	   45724	     26675 ns/op	 153.55 MB/s	    5266 B/op	     987 allocs/op
BenchmarkSmallWriteGoLogger/cores_8
BenchmarkSmallWriteGoLogger/cores_8-16         	   44344	     28360 ns/op	 144.43 MB/s	    5426 B/op	    1017 allocs/op
BenchmarkSmallWriteGoLogger/cores_16
BenchmarkSmallWriteGoLogger/cores_16-16        	   36810	     29573 ns/op	 138.51 MB/s	    5422 B/op	    1015 allocs/op
BenchmarkSmallWriteSerf
BenchmarkSmallWriteSerf/cores_1
BenchmarkSmallWriteSerf/cores_1-16             	   38850	     32975 ns/op	 124.21 MB/s	    5470 B/op	    1024 allocs/op
BenchmarkSmallWriteSerf/cores_2
BenchmarkSmallWriteSerf/cores_2-16             	   41787	     28999 ns/op	 141.25 MB/s	    5469 B/op	    1024 allocs/op
BenchmarkSmallWriteSerf/cores_4
BenchmarkSmallWriteSerf/cores_4-16             	   43066	     30472 ns/op	 134.42 MB/s	    5469 B/op	    1024 allocs/op
BenchmarkSmallWriteSerf/cores_8
BenchmarkSmallWriteSerf/cores_8-16             	   35313	     28614 ns/op	 143.15 MB/s	    5471 B/op	    1024 allocs/op
BenchmarkSmallWriteSerf/cores_16
BenchmarkSmallWriteSerf/cores_16-16            	   39213	     29698 ns/op	 137.92 MB/s	    5470 B/op	    1024 allocs/op
PASS
ok  	github.com/da-moon/go-logger	16.458s

Documentation

Overview

Package logger implements Gated Writer and log writer acknowledgements

  • github.com/hashicorp/serf/
  • github.com/hashicorp/logutils/

Index

Constants

This section is empty.

Variables

DefaultLogLevels ...

Functions

This section is empty.

Types

type GatedWriter

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

GatedWriter is an io.Writer implementation that buffers all of its data into an internal buffer until it is told to let data through. it's used to log a daemon's stdout/stderr in a more orderly fashion

func NewGatedWriter

func NewGatedWriter(writer io.Writer) *GatedWriter

NewGatedWriter returns a new gated writer

func (*GatedWriter) Flush

func (w *GatedWriter) Flush()

Flush ...

func (*GatedWriter) Write

func (w *GatedWriter) Write(p []byte) (n int, err error)

Write ...

type LevelFilter

type LevelFilter interface {
	io.Writer
	Check(line []byte) bool
	SetMinLevel(min LogLevel)
}

LevelFilter ...

func NewLevelFilter added in v0.0.2

func NewLevelFilter(opts ...LevelFilterOption) LevelFilter

NewLevelFilter ...

type LevelFilterOption added in v0.0.2

type LevelFilterOption func(*levelFilter)

LevelFilterOption - sets levelFilter options

func WithLevels added in v0.0.2

func WithLevels(arg []string) LevelFilterOption

WithLevels ...

func WithMinLevel added in v0.0.2

func WithMinLevel(arg string) LevelFilterOption

WithMinLevel ...

func WithWriter added in v0.0.2

func WithWriter(arg io.Writer) LevelFilterOption

WithWriter - sets io.writer

type LogHandler

type LogHandler interface {
	HandleLog(string)
}

LogHandler ...

type LogLevel added in v0.0.2

type LogLevel string

LogLevel string representing log level

var (
	// TraceLevel ...
	TraceLevel LogLevel = "TRACE"
	// DebugLevel ...
	DebugLevel LogLevel = "DEBUG"
	// InfoLevel ...
	InfoLevel LogLevel = "INFO"
	// WarnLevel ...
	WarnLevel LogLevel = "WARN"
	// ErrorLevel ...
	ErrorLevel LogLevel = "ERROR"
)

default log levels

type LogWriter

type LogWriter struct {
	sync.Mutex
	// contains filtered or unexported fields
}

LogWriter ...

func NewLogWriter

func NewLogWriter(buf int) *LogWriter

NewLogWriter ...

func (*LogWriter) DeregisterHandler

func (l *LogWriter) DeregisterHandler(lh LogHandler)

DeregisterHandler ...

func (*LogWriter) RegisterHandler

func (l *LogWriter) RegisterHandler(lh LogHandler)

RegisterHandler ...

func (*LogWriter) Write

func (l *LogWriter) Write(p []byte) (n int, err error)

Write ...

type WrappedLogger added in v0.0.3

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

WrappedLogger is a logger that adds default log level prefixes and exposes methods for writing to Those levels

func NewWrappedLogger added in v0.0.3

func NewWrappedLogger(l *log.Logger) *WrappedLogger

NewWrappedLogger returns a new Wrapped Logger

func (*WrappedLogger) Debug added in v0.0.3

func (l *WrappedLogger) Debug(format string, v ...interface{})

Debug ...

func (*WrappedLogger) Error added in v0.0.3

func (l *WrappedLogger) Error(format string, v ...interface{})

Error ...

func (*WrappedLogger) Fatal added in v0.0.3

func (l *WrappedLogger) Fatal(v ...interface{})

Fatal ...

func (*WrappedLogger) Fatalf added in v0.0.3

func (l *WrappedLogger) Fatalf(format string, v ...interface{})

Fatalf ...

func (*WrappedLogger) Fatalln added in v0.0.3

func (l *WrappedLogger) Fatalln(v ...interface{})

Fatalln ...

func (*WrappedLogger) Flags added in v0.0.3

func (l *WrappedLogger) Flags() int

Flags ...

func (*WrappedLogger) Info added in v0.0.3

func (l *WrappedLogger) Info(format string, v ...interface{})

Info ...

func (*WrappedLogger) Output added in v0.0.3

func (l *WrappedLogger) Output(calldepth int, s string) error

Output ...

func (*WrappedLogger) Panic added in v0.0.3

func (l *WrappedLogger) Panic(v ...interface{})

Panic ...

func (*WrappedLogger) Panicf added in v0.0.3

func (l *WrappedLogger) Panicf(format string, v ...interface{})

Panicf ...

func (*WrappedLogger) Panicln added in v0.0.3

func (l *WrappedLogger) Panicln(v ...interface{})

Panicln ...

func (*WrappedLogger) Prefix added in v0.0.3

func (l *WrappedLogger) Prefix() string

Prefix ...

func (*WrappedLogger) Print added in v0.0.3

func (l *WrappedLogger) Print(v ...interface{})

Print ...

func (*WrappedLogger) Printf added in v0.0.3

func (l *WrappedLogger) Printf(format string, v ...interface{})

Printf ...

func (*WrappedLogger) Println added in v0.0.3

func (l *WrappedLogger) Println(v ...interface{})

Println ...

func (*WrappedLogger) SetFlags added in v0.0.3

func (l *WrappedLogger) SetFlags(flag int)

SetFlags ...

func (*WrappedLogger) SetPrefix added in v0.0.3

func (l *WrappedLogger) SetPrefix(prefix string)

SetPrefix ...

func (*WrappedLogger) Trace added in v0.0.3

func (l *WrappedLogger) Trace(format string, v ...interface{})

Trace ...

func (*WrappedLogger) Warn added in v0.0.3

func (l *WrappedLogger) Warn(format string, v ...interface{})

Warn ...

func (*WrappedLogger) Writer added in v0.0.3

func (l *WrappedLogger) Writer() io.Writer

Writer ...

Jump to

Keyboard shortcuts

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