vendor: sirupsen/logrus v1.7.0
full diff: https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0 removes dependency on github.com/konsorten/go-windows-terminal-sequences Features: * a new buffer pool management API has been added * a set of `<LogLevel>Fn()` functions have been added Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
		
							
								
								
									
										52
									
								
								vendor/github.com/sirupsen/logrus/buffer_pool.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								vendor/github.com/sirupsen/logrus/buffer_pool.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| package logrus | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"sync" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	bufferPool BufferPool | ||||
| ) | ||||
|  | ||||
| type BufferPool interface { | ||||
| 	Put(*bytes.Buffer) | ||||
| 	Get() *bytes.Buffer | ||||
| } | ||||
|  | ||||
| type defaultPool struct { | ||||
| 	pool *sync.Pool | ||||
| } | ||||
|  | ||||
| func (p *defaultPool) Put(buf *bytes.Buffer) { | ||||
| 	p.pool.Put(buf) | ||||
| } | ||||
|  | ||||
| func (p *defaultPool) Get() *bytes.Buffer { | ||||
| 	return p.pool.Get().(*bytes.Buffer) | ||||
| } | ||||
|  | ||||
| func getBuffer() *bytes.Buffer { | ||||
| 	return bufferPool.Get() | ||||
| } | ||||
|  | ||||
| func putBuffer(buf *bytes.Buffer) { | ||||
| 	buf.Reset() | ||||
| 	bufferPool.Put(buf) | ||||
| } | ||||
|  | ||||
| // SetBufferPool allows to replace the default logrus buffer pool | ||||
| // to better meets the specific needs of an application. | ||||
| func SetBufferPool(bp BufferPool) { | ||||
| 	bufferPool = bp | ||||
| } | ||||
|  | ||||
| func init() { | ||||
| 	SetBufferPool(&defaultPool{ | ||||
| 		pool: &sync.Pool{ | ||||
| 			New: func() interface{} { | ||||
| 				return new(bytes.Buffer) | ||||
| 			}, | ||||
| 		}, | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										14
									
								
								vendor/github.com/sirupsen/logrus/entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/sirupsen/logrus/entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,7 +13,6 @@ import ( | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	bufferPool *sync.Pool | ||||
|  | ||||
| 	// qualified package name, cached at first use | ||||
| 	logrusPackage string | ||||
| @@ -31,12 +30,6 @@ const ( | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| 	bufferPool = &sync.Pool{ | ||||
| 		New: func() interface{} { | ||||
| 			return new(bytes.Buffer) | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	// start at the bottom of the stack before the package-name cache is primed | ||||
| 	minimumCallerDepth = 1 | ||||
| } | ||||
| @@ -243,9 +236,12 @@ func (entry Entry) log(level Level, msg string) { | ||||
|  | ||||
| 	entry.fireHooks() | ||||
|  | ||||
| 	buffer = bufferPool.Get().(*bytes.Buffer) | ||||
| 	buffer = getBuffer() | ||||
| 	defer func() { | ||||
| 		entry.Buffer = nil | ||||
| 		putBuffer(buffer) | ||||
| 	}() | ||||
| 	buffer.Reset() | ||||
| 	defer bufferPool.Put(buffer) | ||||
| 	entry.Buffer = buffer | ||||
|  | ||||
| 	entry.write() | ||||
|   | ||||
							
								
								
									
										45
									
								
								vendor/github.com/sirupsen/logrus/exported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/sirupsen/logrus/exported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -134,6 +134,51 @@ func Fatal(args ...interface{}) { | ||||
| 	std.Fatal(args...) | ||||
| } | ||||
|  | ||||
| // TraceFn logs a message from a func at level Trace on the standard logger. | ||||
| func TraceFn(fn LogFunction) { | ||||
| 	std.TraceFn(fn) | ||||
| } | ||||
|  | ||||
| // DebugFn logs a message from a func at level Debug on the standard logger. | ||||
| func DebugFn(fn LogFunction) { | ||||
| 	std.DebugFn(fn) | ||||
| } | ||||
|  | ||||
| // PrintFn logs a message from a func at level Info on the standard logger. | ||||
| func PrintFn(fn LogFunction) { | ||||
| 	std.PrintFn(fn) | ||||
| } | ||||
|  | ||||
| // InfoFn logs a message from a func at level Info on the standard logger. | ||||
| func InfoFn(fn LogFunction) { | ||||
| 	std.InfoFn(fn) | ||||
| } | ||||
|  | ||||
| // WarnFn logs a message from a func at level Warn on the standard logger. | ||||
| func WarnFn(fn LogFunction) { | ||||
| 	std.WarnFn(fn) | ||||
| } | ||||
|  | ||||
| // WarningFn logs a message from a func at level Warn on the standard logger. | ||||
| func WarningFn(fn LogFunction) { | ||||
| 	std.WarningFn(fn) | ||||
| } | ||||
|  | ||||
| // ErrorFn logs a message from a func at level Error on the standard logger. | ||||
| func ErrorFn(fn LogFunction) { | ||||
| 	std.ErrorFn(fn) | ||||
| } | ||||
|  | ||||
| // PanicFn logs a message from a func at level Panic on the standard logger. | ||||
| func PanicFn(fn LogFunction) { | ||||
| 	std.PanicFn(fn) | ||||
| } | ||||
|  | ||||
| // FatalFn logs a message from a func at level Fatal on the standard logger then the process will exit with status set to 1. | ||||
| func FatalFn(fn LogFunction) { | ||||
| 	std.FatalFn(fn) | ||||
| } | ||||
|  | ||||
| // Tracef logs a message at level Trace on the standard logger. | ||||
| func Tracef(format string, args ...interface{}) { | ||||
| 	std.Tracef(format, args...) | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -2,10 +2,9 @@ module github.com/sirupsen/logrus | ||||
|  | ||||
| require ( | ||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||
| 	github.com/konsorten/go-windows-terminal-sequences v1.0.3 | ||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||
| 	github.com/stretchr/testify v1.2.2 | ||||
| 	golang.org/x/sys v0.0.0-20190422165155-953cdadca894 | ||||
| 	golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 | ||||
| ) | ||||
|  | ||||
| go 1.13 | ||||
|   | ||||
							
								
								
									
										54
									
								
								vendor/github.com/sirupsen/logrus/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/github.com/sirupsen/logrus/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -9,6 +9,11 @@ import ( | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // LogFunction For big messages, it can be more efficient to pass a function | ||||
| // and only call it if the log level is actually enables rather than | ||||
| // generating the log message and then checking if the level is enabled | ||||
| type LogFunction func()[]interface{} | ||||
|  | ||||
| type Logger struct { | ||||
| 	// The logs are `io.Copy`'d to this in a mutex. It's common to set this to a | ||||
| 	// file, or leave it default which is `os.Stderr`. You can also set this to | ||||
| @@ -70,7 +75,7 @@ func (mw *MutexWrap) Disable() { | ||||
| // | ||||
| //    var log = &logrus.Logger{ | ||||
| //      Out: os.Stderr, | ||||
| //      Formatter: new(logrus.JSONFormatter), | ||||
| //      Formatter: new(logrus.TextFormatter), | ||||
| //      Hooks: make(logrus.LevelHooks), | ||||
| //      Level: logrus.DebugLevel, | ||||
| //    } | ||||
| @@ -195,6 +200,14 @@ func (logger *Logger) Log(level Level, args ...interface{}) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (logger *Logger) LogFn(level Level, fn LogFunction) { | ||||
| 	if logger.IsLevelEnabled(level) { | ||||
| 		entry := logger.newEntry() | ||||
| 		entry.Log(level, fn()...) | ||||
| 		logger.releaseEntry(entry) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (logger *Logger) Trace(args ...interface{}) { | ||||
| 	logger.Log(TraceLevel, args...) | ||||
| } | ||||
| @@ -234,6 +247,45 @@ func (logger *Logger) Panic(args ...interface{}) { | ||||
| 	logger.Log(PanicLevel, args...) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) TraceFn(fn LogFunction) { | ||||
| 	logger.LogFn(TraceLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) DebugFn(fn LogFunction) { | ||||
| 	logger.LogFn(DebugLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) InfoFn(fn LogFunction) { | ||||
| 	logger.LogFn(InfoLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) PrintFn(fn LogFunction) { | ||||
| 	entry := logger.newEntry() | ||||
| 	entry.Print(fn()...) | ||||
| 	logger.releaseEntry(entry) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) WarnFn(fn LogFunction) { | ||||
| 	logger.LogFn(WarnLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) WarningFn(fn LogFunction) { | ||||
| 	logger.WarnFn(fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) ErrorFn(fn LogFunction) { | ||||
| 	logger.LogFn(ErrorLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) FatalFn(fn LogFunction) { | ||||
| 	logger.LogFn(FatalLevel, fn) | ||||
| 	logger.Exit(1) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) PanicFn(fn LogFunction) { | ||||
| 	logger.LogFn(PanicLevel, fn) | ||||
| } | ||||
|  | ||||
| func (logger *Logger) Logln(level Level, args ...interface{}) { | ||||
| 	if logger.IsLevelEnabled(level) { | ||||
| 		entry := logger.newEntry() | ||||
|   | ||||
							
								
								
									
										29
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -5,30 +5,23 @@ package logrus | ||||
| import ( | ||||
| 	"io" | ||||
| 	"os" | ||||
| 	"syscall" | ||||
|  | ||||
| 	sequences "github.com/konsorten/go-windows-terminal-sequences" | ||||
| 	"golang.org/x/sys/windows" | ||||
| ) | ||||
|  | ||||
| func initTerminal(w io.Writer) { | ||||
| 	switch v := w.(type) { | ||||
| 	case *os.File: | ||||
| 		sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func checkIfTerminal(w io.Writer) bool { | ||||
| 	var ret bool | ||||
| 	switch v := w.(type) { | ||||
| 	case *os.File: | ||||
| 		handle := windows.Handle(v.Fd()) | ||||
| 		var mode uint32 | ||||
| 		err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode) | ||||
| 		ret = (err == nil) | ||||
| 	default: | ||||
| 		ret = false | ||||
| 		if err := windows.GetConsoleMode(handle, &mode); err != nil { | ||||
| 			return false | ||||
| 		} | ||||
| 		mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING | ||||
| 		if err := windows.SetConsoleMode(handle, mode); err != nil { | ||||
| 			return false | ||||
| 		} | ||||
| 		return true | ||||
| 	} | ||||
| 	if ret { | ||||
| 		initTerminal(w) | ||||
| 	} | ||||
| 	return ret | ||||
| 	return false | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sebastiaan van Stijn
					Sebastiaan van Stijn