bilog

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2022 License: MIT Imports: 6 Imported by: 13

README

bilog

bilog被设计为可以在需要性能,简单日志的场景下可以替换std log,它关注性能与轻量的实现。

Benchmark

Cpu: i7-8705G 4C/8T 的测试结果,测试用例在log_test.go

goos: darwin
goarch: amd64
pkg: github.com/zbh255/bilog
cpu: Intel(R) Core(TM) i7-8705G CPU @ 3.10GHz
BenchmarkLogger
BenchmarkLogger/BiLog
BenchmarkLogger/BiLog-8         	20721610	        55.23 ns/op	       0 B/op	       0 allocs/op
BenchmarkLogger/BiLogDoubleSwitchPrefix
BenchmarkLogger/BiLogDoubleSwitchPrefix-8         	10265996	       112.8 ns/op	       0 B/op	       0 allocs/op
BenchmarkLogger/StdLog
BenchmarkLogger/StdLog-8                          	 3658471	       313.2 ns/op	      16 B/op	       1 allocs/op
BenchmarkLogger/StdLogDoubleSwitchPrefix
BenchmarkLogger/StdLogDoubleSwitchPrefix-8        	 1850556	       642.7 ns/op	      32 B/op	       2 allocs/op
PASS

Documentation

Index

Constants

View Source
const (
	INFO level = iota
	DEBUG
	TRACE
	ERROR
	PANIC
)
View Source
const (
	TOP_BUFFER_SIZE = 256
	LOW_BUFFER_SIZE = TOP_BUFFER_SIZE * 6
	TIME_BUF_SIZE   = 64
	PREFIX_BUF_SIZE = 64
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Logger

type Logger interface {
	Level() int
	Info(s string)
	Debug(s string)
	Trace(s string)
	ErrorFromErr(e error)
	ErrorFromString(s string)
	PanicFromErr(e error)
	PanicFromString(s string)
	Flush()
}

func NewLogger

func NewLogger(write io.Writer, l level) Logger

type SimpleLogger

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

SimpleLogger atomic flag 会有公平性的问题

func (*SimpleLogger) Debug

func (l *SimpleLogger) Debug(s string)

func (*SimpleLogger) ErrorFromErr

func (l *SimpleLogger) ErrorFromErr(e error)

TODO: 优雅地处理error

func (*SimpleLogger) ErrorFromString

func (l *SimpleLogger) ErrorFromString(s string)

func (*SimpleLogger) Flush

func (l *SimpleLogger) Flush()

func (*SimpleLogger) Info

func (l *SimpleLogger) Info(s string)

func (*SimpleLogger) Level

func (l *SimpleLogger) Level() int

func (*SimpleLogger) PanicFromErr

func (l *SimpleLogger) PanicFromErr(e error)

func (*SimpleLogger) PanicFromString

func (l *SimpleLogger) PanicFromString(s string)

func (*SimpleLogger) Print

func (l *SimpleLogger) Print(s string, level level)

func (*SimpleLogger) Println

func (l *SimpleLogger) Println(s string, level level)

func (*SimpleLogger) Trace

func (l *SimpleLogger) Trace(s string)

type TimeFactory

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

func NewTimeFactory

func NewTimeFactory() *TimeFactory

func (*TimeFactory) Get

func (t *TimeFactory) Get() []byte

func (*TimeFactory) GetRaw

func (t *TimeFactory) GetRaw() time.Time

func (*TimeFactory) Start

func (t *TimeFactory) Start()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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