build: upgrade to go 1.17 and dependencies
This commit is contained in:
		
							
								
								
									
										2
									
								
								vendor/github.com/sirupsen/logrus/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/sirupsen/logrus/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,2 +1,4 @@
 | 
			
		||||
logrus
 | 
			
		||||
vendor
 | 
			
		||||
 | 
			
		||||
.idea/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								vendor/github.com/sirupsen/logrus/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/sirupsen/logrus/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,14 +4,12 @@ git:
 | 
			
		||||
  depth: 1
 | 
			
		||||
env:
 | 
			
		||||
  - GO111MODULE=on
 | 
			
		||||
go: [1.13.x, 1.14.x]
 | 
			
		||||
os: [linux, osx]
 | 
			
		||||
go: 1.15.x
 | 
			
		||||
os: linux
 | 
			
		||||
install:
 | 
			
		||||
  - ./travis/install.sh
 | 
			
		||||
script:
 | 
			
		||||
  - ./travis/cross_build.sh
 | 
			
		||||
  - ./travis/lint.sh
 | 
			
		||||
  - export GOMAXPROCS=4
 | 
			
		||||
  - export GORACE=halt_on_error=1
 | 
			
		||||
  - go test -race -v ./...
 | 
			
		||||
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then go test -race -v -tags appengine ./... ; fi
 | 
			
		||||
  - cd ci
 | 
			
		||||
  - go run mage.go -v -w ../ crossBuild
 | 
			
		||||
  - go run mage.go -v -w ../ lint
 | 
			
		||||
  - go run mage.go -v -w ../ test
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/sirupsen/logrus/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/sirupsen/logrus/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,3 +1,39 @@
 | 
			
		||||
# 1.8.1
 | 
			
		||||
Code quality:
 | 
			
		||||
  * move magefile in its own subdir/submodule to remove magefile dependency on logrus consumer
 | 
			
		||||
  * improve timestamp format documentation
 | 
			
		||||
 | 
			
		||||
Fixes:
 | 
			
		||||
  * fix race condition on logger hooks
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 1.8.0
 | 
			
		||||
 | 
			
		||||
Correct versioning number replacing v1.7.1.
 | 
			
		||||
 | 
			
		||||
# 1.7.1
 | 
			
		||||
 | 
			
		||||
Beware this release has introduced a new public API and its semver is therefore incorrect.
 | 
			
		||||
 | 
			
		||||
Code quality:
 | 
			
		||||
  * use go 1.15 in travis
 | 
			
		||||
  * use magefile as task runner
 | 
			
		||||
 | 
			
		||||
Fixes:
 | 
			
		||||
  * small fixes about new go 1.13 error formatting system
 | 
			
		||||
  * Fix for long time race condiction with mutating data hooks
 | 
			
		||||
 | 
			
		||||
Features:
 | 
			
		||||
  * build support for zos
 | 
			
		||||
 | 
			
		||||
# 1.7.0
 | 
			
		||||
Fixes:
 | 
			
		||||
  * the dependency toward a windows terminal library has been removed
 | 
			
		||||
 | 
			
		||||
Features:
 | 
			
		||||
  * a new buffer pool management API has been added
 | 
			
		||||
  * a set of `<LogLevel>Fn()` functions have been added
 | 
			
		||||
 | 
			
		||||
# 1.6.0
 | 
			
		||||
Fixes:
 | 
			
		||||
  * end of line cleanup
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/sirupsen/logrus/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/sirupsen/logrus/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -402,7 +402,7 @@ func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
  // source of the official loggers.
 | 
			
		||||
  serialized, err := json.Marshal(entry.Data)
 | 
			
		||||
    if err != nil {
 | 
			
		||||
      return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
 | 
			
		||||
      return nil, fmt.Errorf("Failed to marshal fields to JSON, %w", err)
 | 
			
		||||
    }
 | 
			
		||||
  return append(serialized, '\n'), nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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)
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								vendor/github.com/sirupsen/logrus/entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								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
 | 
			
		||||
}
 | 
			
		||||
@@ -85,6 +78,14 @@ func NewEntry(logger *Logger) *Entry {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Dup() *Entry {
 | 
			
		||||
	data := make(Fields, len(entry.Data))
 | 
			
		||||
	for k, v := range entry.Data {
 | 
			
		||||
		data[k] = v
 | 
			
		||||
	}
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, Context: entry.Context, err: entry.err}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Returns the bytes representation of this entry from the formatter.
 | 
			
		||||
func (entry *Entry) Bytes() ([]byte, error) {
 | 
			
		||||
	return entry.Logger.Formatter.Format(entry)
 | 
			
		||||
@@ -130,11 +131,9 @@ func (entry *Entry) WithFields(fields Fields) *Entry {
 | 
			
		||||
	for k, v := range fields {
 | 
			
		||||
		isErrField := false
 | 
			
		||||
		if t := reflect.TypeOf(v); t != nil {
 | 
			
		||||
			switch t.Kind() {
 | 
			
		||||
			case reflect.Func:
 | 
			
		||||
			switch {
 | 
			
		||||
			case t.Kind() == reflect.Func, t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Func:
 | 
			
		||||
				isErrField = true
 | 
			
		||||
			case reflect.Ptr:
 | 
			
		||||
				isErrField = t.Elem().Kind() == reflect.Func
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if isErrField {
 | 
			
		||||
@@ -219,65 +218,72 @@ func (entry Entry) HasCaller() (has bool) {
 | 
			
		||||
		entry.Caller != nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// This function is not declared with a pointer value because otherwise
 | 
			
		||||
// race conditions will occur when using multiple goroutines
 | 
			
		||||
func (entry Entry) log(level Level, msg string) {
 | 
			
		||||
func (entry *Entry) log(level Level, msg string) {
 | 
			
		||||
	var buffer *bytes.Buffer
 | 
			
		||||
 | 
			
		||||
	// Default to now, but allow users to override if they want.
 | 
			
		||||
	//
 | 
			
		||||
	// We don't have to worry about polluting future calls to Entry#log()
 | 
			
		||||
	// with this assignment because this function is declared with a
 | 
			
		||||
	// non-pointer receiver.
 | 
			
		||||
	if entry.Time.IsZero() {
 | 
			
		||||
		entry.Time = time.Now()
 | 
			
		||||
	newEntry := entry.Dup()
 | 
			
		||||
 | 
			
		||||
	if newEntry.Time.IsZero() {
 | 
			
		||||
		newEntry.Time = time.Now()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	entry.Level = level
 | 
			
		||||
	entry.Message = msg
 | 
			
		||||
	entry.Logger.mu.Lock()
 | 
			
		||||
	if entry.Logger.ReportCaller {
 | 
			
		||||
		entry.Caller = getCaller()
 | 
			
		||||
	newEntry.Level = level
 | 
			
		||||
	newEntry.Message = msg
 | 
			
		||||
 | 
			
		||||
	newEntry.Logger.mu.Lock()
 | 
			
		||||
	reportCaller := newEntry.Logger.ReportCaller
 | 
			
		||||
	newEntry.Logger.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	if reportCaller {
 | 
			
		||||
		newEntry.Caller = getCaller()
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logger.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	entry.fireHooks()
 | 
			
		||||
	newEntry.fireHooks()
 | 
			
		||||
 | 
			
		||||
	buffer = bufferPool.Get().(*bytes.Buffer)
 | 
			
		||||
	buffer = getBuffer()
 | 
			
		||||
	defer func() {
 | 
			
		||||
		newEntry.Buffer = nil
 | 
			
		||||
		putBuffer(buffer)
 | 
			
		||||
	}()
 | 
			
		||||
	buffer.Reset()
 | 
			
		||||
	defer bufferPool.Put(buffer)
 | 
			
		||||
	entry.Buffer = buffer
 | 
			
		||||
	newEntry.Buffer = buffer
 | 
			
		||||
 | 
			
		||||
	entry.write()
 | 
			
		||||
	newEntry.write()
 | 
			
		||||
 | 
			
		||||
	entry.Buffer = nil
 | 
			
		||||
	newEntry.Buffer = nil
 | 
			
		||||
 | 
			
		||||
	// To avoid Entry#log() returning a value that only would make sense for
 | 
			
		||||
	// panic() to use in Entry#Panic(), we avoid the allocation by checking
 | 
			
		||||
	// directly here.
 | 
			
		||||
	if level <= PanicLevel {
 | 
			
		||||
		panic(&entry)
 | 
			
		||||
		panic(newEntry)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) fireHooks() {
 | 
			
		||||
	var tmpHooks LevelHooks
 | 
			
		||||
	entry.Logger.mu.Lock()
 | 
			
		||||
	defer entry.Logger.mu.Unlock()
 | 
			
		||||
	err := entry.Logger.Hooks.Fire(entry.Level, entry)
 | 
			
		||||
	tmpHooks = make(LevelHooks, len(entry.Logger.Hooks))
 | 
			
		||||
	for k, v := range entry.Logger.Hooks {
 | 
			
		||||
		tmpHooks[k] = v
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logger.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	err := tmpHooks.Fire(entry.Level, entry)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) write() {
 | 
			
		||||
	entry.Logger.mu.Lock()
 | 
			
		||||
	defer entry.Logger.mu.Unlock()
 | 
			
		||||
	serialized, err := entry.Logger.Formatter.Format(entry)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if _, err = entry.Logger.Out.Write(serialized); err != nil {
 | 
			
		||||
	entry.Logger.mu.Lock()
 | 
			
		||||
	defer entry.Logger.mu.Unlock()
 | 
			
		||||
	if _, err := entry.Logger.Out.Write(serialized); err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -323,7 +329,6 @@ func (entry *Entry) Fatal(args ...interface{}) {
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Panic(args ...interface{}) {
 | 
			
		||||
	entry.Log(PanicLevel, args...)
 | 
			
		||||
	panic(fmt.Sprint(args...))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Entry Printf family functions
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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...)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,11 +0,0 @@
 | 
			
		||||
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
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
go 1.13
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/github.com/sirupsen/logrus/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/sirupsen/logrus/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,12 +0,0 @@
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
 | 
			
		||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/sirupsen/logrus/json_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/sirupsen/logrus/json_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -23,6 +23,9 @@ func (f FieldMap) resolve(key fieldKey) string {
 | 
			
		||||
// JSONFormatter formats logs into parsable json
 | 
			
		||||
type JSONFormatter struct {
 | 
			
		||||
	// TimestampFormat sets the format used for marshaling timestamps.
 | 
			
		||||
	// The format to use is the same than for time.Format or time.Parse from the standard
 | 
			
		||||
	// library.
 | 
			
		||||
	// The standard Library already provides a set of predefined format.
 | 
			
		||||
	TimestampFormat string
 | 
			
		||||
 | 
			
		||||
	// DisableTimestamp allows disabling automatic timestamps in output
 | 
			
		||||
@@ -118,7 +121,7 @@ func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
		encoder.SetIndent("", "  ")
 | 
			
		||||
	}
 | 
			
		||||
	if err := encoder.Encode(data); err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("failed to marshal fields to JSON, %v", err)
 | 
			
		||||
		return nil, fmt.Errorf("failed to marshal fields to JSON, %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return b.Bytes(), nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
// +build linux aix
 | 
			
		||||
// +build linux aix zos
 | 
			
		||||
// +build !js
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								vendor/github.com/sirupsen/logrus/text_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/sirupsen/logrus/text_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -53,7 +53,10 @@ type TextFormatter struct {
 | 
			
		||||
	// the time passed since beginning of execution.
 | 
			
		||||
	FullTimestamp bool
 | 
			
		||||
 | 
			
		||||
	// TimestampFormat to use for display when a full timestamp is printed
 | 
			
		||||
	// TimestampFormat to use for display when a full timestamp is printed.
 | 
			
		||||
	// The format to use is the same than for time.Format or time.Parse from the standard
 | 
			
		||||
	// library.
 | 
			
		||||
	// The standard Library already provides a set of predefined format.
 | 
			
		||||
	TimestampFormat string
 | 
			
		||||
 | 
			
		||||
	// The fields are sorted by default for a consistent output. For applications
 | 
			
		||||
@@ -235,6 +238,8 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin
 | 
			
		||||
		levelColor = yellow
 | 
			
		||||
	case ErrorLevel, FatalLevel, PanicLevel:
 | 
			
		||||
		levelColor = red
 | 
			
		||||
	case InfoLevel:
 | 
			
		||||
		levelColor = blue
 | 
			
		||||
	default:
 | 
			
		||||
		levelColor = blue
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user