mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	Update dependency sirupsen/logrus
This commit is contained in:
		
							
								
								
									
										66
									
								
								vendor/github.com/sirupsen/logrus/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								vendor/github.com/sirupsen/logrus/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,51 +1,25 @@
 | 
			
		||||
language: go
 | 
			
		||||
go_import_path: github.com/sirupsen/logrus
 | 
			
		||||
git:
 | 
			
		||||
  depth: 1
 | 
			
		||||
env:
 | 
			
		||||
  - GOMAXPROCS=4 GORACE=halt_on_error=1
 | 
			
		||||
  - GO111MODULE=on
 | 
			
		||||
  - GO111MODULE=off
 | 
			
		||||
go: [ 1.11.x, 1.12.x ]
 | 
			
		||||
os: [ linux, osx ]
 | 
			
		||||
matrix:
 | 
			
		||||
  include:
 | 
			
		||||
    - go: 1.10.x
 | 
			
		||||
      install:
 | 
			
		||||
        - go get github.com/stretchr/testify/assert
 | 
			
		||||
        - go get golang.org/x/crypto/ssh/terminal
 | 
			
		||||
        - go get golang.org/x/sys/unix
 | 
			
		||||
        - go get golang.org/x/sys/windows
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v ./...
 | 
			
		||||
    - go: 1.11.x
 | 
			
		||||
      env: GO111MODULE=on
 | 
			
		||||
      install:
 | 
			
		||||
        - go mod download
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v ./...
 | 
			
		||||
    - go: 1.11.x
 | 
			
		||||
  exclude:
 | 
			
		||||
    - go: 1.12.x
 | 
			
		||||
      env: GO111MODULE=off
 | 
			
		||||
      install:
 | 
			
		||||
        - go get github.com/stretchr/testify/assert
 | 
			
		||||
        - go get golang.org/x/crypto/ssh/terminal
 | 
			
		||||
        - go get golang.org/x/sys/unix
 | 
			
		||||
        - go get golang.org/x/sys/windows
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v ./...
 | 
			
		||||
    - go: 1.10.x
 | 
			
		||||
      install:
 | 
			
		||||
        - go get github.com/stretchr/testify/assert
 | 
			
		||||
        - go get golang.org/x/crypto/ssh/terminal
 | 
			
		||||
        - go get golang.org/x/sys/unix
 | 
			
		||||
        - go get golang.org/x/sys/windows
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v -tags appengine ./...
 | 
			
		||||
    - go: 1.11.x
 | 
			
		||||
      env: GO111MODULE=on
 | 
			
		||||
      install:
 | 
			
		||||
        - go mod download
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v -tags appengine ./...
 | 
			
		||||
    - go: 1.11.x
 | 
			
		||||
      env: GO111MODULE=off
 | 
			
		||||
      install:
 | 
			
		||||
        - go get github.com/stretchr/testify/assert
 | 
			
		||||
        - go get golang.org/x/crypto/ssh/terminal
 | 
			
		||||
        - go get golang.org/x/sys/unix
 | 
			
		||||
        - go get golang.org/x/sys/windows
 | 
			
		||||
      script:
 | 
			
		||||
        - go test -race -v -tags appengine ./...
 | 
			
		||||
      os: osx
 | 
			
		||||
install:
 | 
			
		||||
  - ./travis/install.sh
 | 
			
		||||
  - if [[ "$GO111MODULE" ==  "on" ]]; then go mod download; fi
 | 
			
		||||
  - if [[ "$GO111MODULE" == "off" ]]; then go get github.com/stretchr/testify/assert golang.org/x/sys/unix github.com/konsorten/go-windows-terminal-sequences; fi
 | 
			
		||||
script:
 | 
			
		||||
  - ./travis/cross_build.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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								vendor/github.com/sirupsen/logrus/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/sirupsen/logrus/BUILD
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,10 +12,12 @@ go_library(
 | 
			
		||||
        "json_formatter.go",
 | 
			
		||||
        "logger.go",
 | 
			
		||||
        "logrus.go",
 | 
			
		||||
        "terminal_check_bsd.go",
 | 
			
		||||
        "terminal_check_no_terminal.go",
 | 
			
		||||
        "terminal_check_notappengine.go",
 | 
			
		||||
        "terminal_check_solaris.go",
 | 
			
		||||
        "terminal_check_unix.go",
 | 
			
		||||
        "terminal_check_windows.go",
 | 
			
		||||
        "terminal_notwindows.go",
 | 
			
		||||
        "terminal_windows.go",
 | 
			
		||||
        "text_formatter.go",
 | 
			
		||||
        "writer.go",
 | 
			
		||||
    ],
 | 
			
		||||
@@ -23,35 +25,26 @@ go_library(
 | 
			
		||||
    importpath = "github.com/sirupsen/logrus",
 | 
			
		||||
    visibility = ["//visibility:public"],
 | 
			
		||||
    deps = select({
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:android": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:darwin": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:dragonfly": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:freebsd": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:linux": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:nacl": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:netbsd": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:openbsd": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:plan9": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:solaris": [
 | 
			
		||||
            "//vendor/golang.org/x/crypto/ssh/terminal:go_default_library",
 | 
			
		||||
            "//vendor/golang.org/x/sys/unix:go_default_library",
 | 
			
		||||
        ],
 | 
			
		||||
        "@io_bazel_rules_go//go/platform:windows": [
 | 
			
		||||
            "//vendor/github.com/konsorten/go-windows-terminal-sequences:go_default_library",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								vendor/github.com/sirupsen/logrus/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										35
									
								
								vendor/github.com/sirupsen/logrus/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,3 +1,38 @@
 | 
			
		||||
# 1.4.2
 | 
			
		||||
  * Fixes build break for plan9, nacl, solaris
 | 
			
		||||
# 1.4.1
 | 
			
		||||
This new release introduces:
 | 
			
		||||
  * Enhance TextFormatter to not print caller information when they are empty (#944)
 | 
			
		||||
  * Remove dependency on golang.org/x/crypto (#932, #943) 
 | 
			
		||||
 | 
			
		||||
Fixes:
 | 
			
		||||
  * Fix Entry.WithContext method to return a copy of the initial entry (#941)
 | 
			
		||||
 | 
			
		||||
# 1.4.0
 | 
			
		||||
This new release introduces:
 | 
			
		||||
  * Add `DeferExitHandler`, similar to `RegisterExitHandler` but prepending the handler to the list of handlers (semantically like `defer`) (#848).
 | 
			
		||||
  * Add `CallerPrettyfier` to `JSONFormatter` and `TextFormatter (#909, #911)
 | 
			
		||||
  * Add `Entry.WithContext()` and `Entry.Context`, to set a context on entries to be used e.g. in hooks (#919).
 | 
			
		||||
 | 
			
		||||
Fixes:
 | 
			
		||||
  * Fix wrong method calls `Logger.Print` and `Logger.Warningln` (#893).
 | 
			
		||||
  * Update `Entry.Logf` to not do string formatting unless the log level is enabled (#903)
 | 
			
		||||
  * Fix infinite recursion on unknown `Level.String()` (#907)
 | 
			
		||||
  * Fix race condition in `getCaller` (#916).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# 1.3.0
 | 
			
		||||
This new release introduces:
 | 
			
		||||
  * Log, Logf, Logln functions for Logger and Entry that take a Level
 | 
			
		||||
 | 
			
		||||
Fixes:
 | 
			
		||||
  * Building prometheus node_exporter on AIX (#840)
 | 
			
		||||
  * Race condition in TextFormatter (#468)
 | 
			
		||||
  * Travis CI import path (#868)
 | 
			
		||||
  * Remove coloured output on Windows (#862)
 | 
			
		||||
  * Pointer to func as field in JSONFormatter (#870)
 | 
			
		||||
  * Properly marshal Levels (#873)
 | 
			
		||||
 | 
			
		||||
# 1.2.0
 | 
			
		||||
This new release introduces:
 | 
			
		||||
  * A new method `SetReportCaller` in the `Logger` to enable the file, line and calling function from which the trace has been issued
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/sirupsen/logrus/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/sirupsen/logrus/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -361,9 +361,11 @@ The built-in logging formatters are:
 | 
			
		||||
Third party logging formatters:
 | 
			
		||||
 | 
			
		||||
* [`FluentdFormatter`](https://github.com/joonix/log). Formats entries that can be parsed by Kubernetes and Google Container Engine.
 | 
			
		||||
* [`GELF`](https://github.com/fabienm/go-logrus-formatters). Formats entries so they comply to Graylog's [GELF 1.1 specification](http://docs.graylog.org/en/2.4/pages/gelf.html).
 | 
			
		||||
* [`logstash`](https://github.com/bshuster-repo/logrus-logstash-hook). Logs fields as [Logstash](http://logstash.net) Events.
 | 
			
		||||
* [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout.
 | 
			
		||||
* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
 | 
			
		||||
* [`nested-logrus-formatter`](https://github.com/antonfisher/nested-logrus-formatter). Converts logrus fields to a nested structure.
 | 
			
		||||
 | 
			
		||||
You can define your formatter by implementing the `Formatter` interface,
 | 
			
		||||
requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/github.com/sirupsen/logrus/alt_exit.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/sirupsen/logrus/alt_exit.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -51,9 +51,9 @@ func Exit(code int) {
 | 
			
		||||
	os.Exit(code)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterExitHandler adds a Logrus Exit handler, call logrus.Exit to invoke
 | 
			
		||||
// all handlers. The handlers will also be invoked when any Fatal log entry is
 | 
			
		||||
// made.
 | 
			
		||||
// RegisterExitHandler appends a Logrus Exit handler to the list of handlers,
 | 
			
		||||
// call logrus.Exit to invoke all handlers. The handlers will also be invoked when
 | 
			
		||||
// any Fatal log entry is made.
 | 
			
		||||
//
 | 
			
		||||
// This method is useful when a caller wishes to use logrus to log a fatal
 | 
			
		||||
// message but also needs to gracefully shutdown. An example usecase could be
 | 
			
		||||
@@ -62,3 +62,15 @@ func Exit(code int) {
 | 
			
		||||
func RegisterExitHandler(handler func()) {
 | 
			
		||||
	handlers = append(handlers, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeferExitHandler prepends a Logrus Exit handler to the list of handlers,
 | 
			
		||||
// call logrus.Exit to invoke all handlers. The handlers will also be invoked when
 | 
			
		||||
// any Fatal log entry is made.
 | 
			
		||||
//
 | 
			
		||||
// This method is useful when a caller wishes to use logrus to log a fatal
 | 
			
		||||
// message but also needs to gracefully shutdown. An example usecase could be
 | 
			
		||||
// closing database connections, or sending a alert that the application is
 | 
			
		||||
// closing.
 | 
			
		||||
func DeferExitHandler(handler func()) {
 | 
			
		||||
	handlers = append([]func(){handler}, handlers...)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										157
									
								
								vendor/github.com/sirupsen/logrus/entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										157
									
								
								vendor/github.com/sirupsen/logrus/entry.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,6 +2,7 @@ package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"reflect"
 | 
			
		||||
@@ -69,6 +70,9 @@ type Entry struct {
 | 
			
		||||
	// When formatter is called in entry.log(), a Buffer may be set to entry
 | 
			
		||||
	Buffer *bytes.Buffer
 | 
			
		||||
 | 
			
		||||
	// Contains the context set by the user. Useful for hook processing etc.
 | 
			
		||||
	Context context.Context
 | 
			
		||||
 | 
			
		||||
	// err may contain a field formatting error
 | 
			
		||||
	err string
 | 
			
		||||
}
 | 
			
		||||
@@ -97,6 +101,11 @@ func (entry *Entry) WithError(err error) *Entry {
 | 
			
		||||
	return entry.WithField(ErrorKey, err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Add a context to the Entry.
 | 
			
		||||
func (entry *Entry) WithContext(ctx context.Context) *Entry {
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: entry.Data, Time: entry.Time, err: entry.err, Context: ctx}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Add a single field to the Entry.
 | 
			
		||||
func (entry *Entry) WithField(key string, value interface{}) *Entry {
 | 
			
		||||
	return entry.WithFields(Fields{key: value})
 | 
			
		||||
@@ -108,23 +117,34 @@ func (entry *Entry) WithFields(fields Fields) *Entry {
 | 
			
		||||
	for k, v := range entry.Data {
 | 
			
		||||
		data[k] = v
 | 
			
		||||
	}
 | 
			
		||||
	var field_err string
 | 
			
		||||
	fieldErr := entry.err
 | 
			
		||||
	for k, v := range fields {
 | 
			
		||||
		if t := reflect.TypeOf(v); t != nil && t.Kind() == reflect.Func {
 | 
			
		||||
			field_err = fmt.Sprintf("can not add field %q", k)
 | 
			
		||||
			if entry.err != "" {
 | 
			
		||||
				field_err = entry.err + ", " + field_err
 | 
			
		||||
		isErrField := false
 | 
			
		||||
		if t := reflect.TypeOf(v); t != nil {
 | 
			
		||||
			switch t.Kind() {
 | 
			
		||||
			case reflect.Func:
 | 
			
		||||
				isErrField = true
 | 
			
		||||
			case reflect.Ptr:
 | 
			
		||||
				isErrField = t.Elem().Kind() == reflect.Func
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if isErrField {
 | 
			
		||||
			tmp := fmt.Sprintf("can not add field %q", k)
 | 
			
		||||
			if fieldErr != "" {
 | 
			
		||||
				fieldErr = entry.err + ", " + tmp
 | 
			
		||||
			} else {
 | 
			
		||||
				fieldErr = tmp
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			data[k] = v
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: field_err}
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: fieldErr, Context: entry.Context}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Overrides the time of the Entry.
 | 
			
		||||
func (entry *Entry) WithTime(t time.Time) *Entry {
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t}
 | 
			
		||||
	return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t, err: entry.err, Context: entry.Context}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// getPackageName reduces a fully qualified function name to the package name
 | 
			
		||||
@@ -145,20 +165,23 @@ func getPackageName(f string) string {
 | 
			
		||||
 | 
			
		||||
// getCaller retrieves the name of the first non-logrus calling function
 | 
			
		||||
func getCaller() *runtime.Frame {
 | 
			
		||||
 | 
			
		||||
	// cache this package's fully-qualified name
 | 
			
		||||
	callerInitOnce.Do(func() {
 | 
			
		||||
		pcs := make([]uintptr, 2)
 | 
			
		||||
		_ = runtime.Callers(0, pcs)
 | 
			
		||||
		logrusPackage = getPackageName(runtime.FuncForPC(pcs[1]).Name())
 | 
			
		||||
 | 
			
		||||
		// now that we have the cache, we can skip a minimum count of known-logrus functions
 | 
			
		||||
		// XXX this is dubious, the number of frames may vary
 | 
			
		||||
		minimumCallerDepth = knownLogrusFrames
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	// Restrict the lookback frames to avoid runaway lookups
 | 
			
		||||
	pcs := make([]uintptr, maximumCallerDepth)
 | 
			
		||||
	depth := runtime.Callers(minimumCallerDepth, pcs)
 | 
			
		||||
	frames := runtime.CallersFrames(pcs[:depth])
 | 
			
		||||
 | 
			
		||||
	// cache this package's fully-qualified name
 | 
			
		||||
	callerInitOnce.Do(func() {
 | 
			
		||||
		logrusPackage = getPackageName(runtime.FuncForPC(pcs[0]).Name())
 | 
			
		||||
 | 
			
		||||
		// now that we have the cache, we can skip a minimum count of known-logrus functions
 | 
			
		||||
		// XXX this is dubious, the number of frames may vary store an entry in a logger interface
 | 
			
		||||
		minimumCallerDepth = knownLogrusFrames
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	for f, again := frames.Next(); again; f, again = frames.Next() {
 | 
			
		||||
		pkg := getPackageName(f.Function)
 | 
			
		||||
 | 
			
		||||
@@ -240,16 +263,18 @@ func (entry *Entry) write() {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Trace(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
		entry.log(TraceLevel, fmt.Sprint(args...))
 | 
			
		||||
func (entry *Entry) Log(level Level, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry.log(level, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Trace(args ...interface{}) {
 | 
			
		||||
	entry.Log(TraceLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Debug(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry.log(DebugLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(DebugLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Print(args ...interface{}) {
 | 
			
		||||
@@ -257,15 +282,11 @@ func (entry *Entry) Print(args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Info(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry.log(InfoLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(InfoLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warn(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry.log(WarnLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(WarnLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warning(args ...interface{}) {
 | 
			
		||||
@@ -273,43 +294,37 @@ func (entry *Entry) Warning(args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Error(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry.log(ErrorLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(ErrorLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Fatal(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry.log(FatalLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(FatalLevel, args...)
 | 
			
		||||
	entry.Logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Panic(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
		entry.log(PanicLevel, fmt.Sprint(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Log(PanicLevel, args...)
 | 
			
		||||
	panic(fmt.Sprint(args...))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Entry Printf family functions
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Tracef(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
		entry.Trace(fmt.Sprintf(format, args...))
 | 
			
		||||
func (entry *Entry) Logf(level Level, format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry.Log(level, fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Tracef(format string, args ...interface{}) {
 | 
			
		||||
	entry.Logf(TraceLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Debugf(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry.Debug(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(DebugLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Infof(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry.Info(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(InfoLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Printf(format string, args ...interface{}) {
 | 
			
		||||
@@ -317,9 +332,7 @@ func (entry *Entry) Printf(format string, args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warnf(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry.Warn(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(WarnLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warningf(format string, args ...interface{}) {
 | 
			
		||||
@@ -327,42 +340,36 @@ func (entry *Entry) Warningf(format string, args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Errorf(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry.Error(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(ErrorLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Fatalf(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry.Fatal(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(FatalLevel, format, args...)
 | 
			
		||||
	entry.Logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Panicf(format string, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
		entry.Panic(fmt.Sprintf(format, args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logf(PanicLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Entry Println family functions
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Traceln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
		entry.Trace(entry.sprintlnn(args...))
 | 
			
		||||
func (entry *Entry) Logln(level Level, args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry.Log(level, entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Traceln(args ...interface{}) {
 | 
			
		||||
	entry.Logln(TraceLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Debugln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry.Debug(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(DebugLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Infoln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry.Info(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(InfoLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Println(args ...interface{}) {
 | 
			
		||||
@@ -370,9 +377,7 @@ func (entry *Entry) Println(args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warnln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry.Warn(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(WarnLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Warningln(args ...interface{}) {
 | 
			
		||||
@@ -380,22 +385,16 @@ func (entry *Entry) Warningln(args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Errorln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry.Error(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(ErrorLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Fatalln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry.Fatal(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(FatalLevel, args...)
 | 
			
		||||
	entry.Logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (entry *Entry) Panicln(args ...interface{}) {
 | 
			
		||||
	if entry.Logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
		entry.Panic(entry.sprintlnn(args...))
 | 
			
		||||
	}
 | 
			
		||||
	entry.Logln(PanicLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Sprintlnn => Sprint no newline. This is to get the behavior of how
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/sirupsen/logrus/exported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/sirupsen/logrus/exported.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,6 +1,7 @@
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"io"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
@@ -55,6 +56,11 @@ func WithError(err error) *Entry {
 | 
			
		||||
	return std.WithField(ErrorKey, err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithContext creates an entry from the standard logger and adds a context to it.
 | 
			
		||||
func WithContext(ctx context.Context) *Entry {
 | 
			
		||||
	return std.WithContext(ctx)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithField creates an entry from the standard logger and adds a field to
 | 
			
		||||
// it. If you want multiple fields, use `WithFields`.
 | 
			
		||||
//
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/sirupsen/logrus/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,6 +6,5 @@ require (
 | 
			
		||||
	github.com/pmezard/go-difflib v1.0.0 // indirect
 | 
			
		||||
	github.com/stretchr/objx v0.1.1 // indirect
 | 
			
		||||
	github.com/stretchr/testify v1.2.2
 | 
			
		||||
	golang.org/x/crypto v0.0.0-20180904163835-0709b304e793
 | 
			
		||||
	golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33
 | 
			
		||||
	golang.org/x/sys v0.0.0-20190422165155-953cdadca894
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								vendor/github.com/sirupsen/logrus/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/sirupsen/logrus/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,6 +2,7 @@ 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 v0.0.0-20180402223658-b729f2633dfe h1:CHRGQ8V7OlCYtwaKPJi3iA7J+YdNKdo8j7nG5IgDhjs=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 | 
			
		||||
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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
@@ -9,7 +10,7 @@ github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
 | 
			
		||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
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/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
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=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/sirupsen/logrus/json_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/sirupsen/logrus/json_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,6 +4,7 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"runtime"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type fieldKey string
 | 
			
		||||
@@ -42,6 +43,12 @@ type JSONFormatter struct {
 | 
			
		||||
	// }
 | 
			
		||||
	FieldMap FieldMap
 | 
			
		||||
 | 
			
		||||
	// CallerPrettyfier can be set by the user to modify the content
 | 
			
		||||
	// of the function and file keys in the json data when ReportCaller is
 | 
			
		||||
	// activated. If any of the returned value is the empty string the
 | 
			
		||||
	// corresponding key will be removed from json fields.
 | 
			
		||||
	CallerPrettyfier func(*runtime.Frame) (function string, file string)
 | 
			
		||||
 | 
			
		||||
	// PrettyPrint will indent all json logs
 | 
			
		||||
	PrettyPrint bool
 | 
			
		||||
}
 | 
			
		||||
@@ -82,8 +89,17 @@ func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
	data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message
 | 
			
		||||
	data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String()
 | 
			
		||||
	if entry.HasCaller() {
 | 
			
		||||
		data[f.FieldMap.resolve(FieldKeyFunc)] = entry.Caller.Function
 | 
			
		||||
		data[f.FieldMap.resolve(FieldKeyFile)] = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
 | 
			
		||||
		funcVal := entry.Caller.Function
 | 
			
		||||
		fileVal := fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
 | 
			
		||||
		if f.CallerPrettyfier != nil {
 | 
			
		||||
			funcVal, fileVal = f.CallerPrettyfier(entry.Caller)
 | 
			
		||||
		}
 | 
			
		||||
		if funcVal != "" {
 | 
			
		||||
			data[f.FieldMap.resolve(FieldKeyFunc)] = funcVal
 | 
			
		||||
		}
 | 
			
		||||
		if fileVal != "" {
 | 
			
		||||
			data[f.FieldMap.resolve(FieldKeyFile)] = fileVal
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var b *bytes.Buffer
 | 
			
		||||
@@ -98,7 +114,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, %v", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return b.Bytes(), nil
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										162
									
								
								vendor/github.com/sirupsen/logrus/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										162
									
								
								vendor/github.com/sirupsen/logrus/logger.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,6 +1,7 @@
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -124,6 +125,13 @@ func (logger *Logger) WithError(err error) *Entry {
 | 
			
		||||
	return entry.WithError(err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Add a context to the log entry.
 | 
			
		||||
func (logger *Logger) WithContext(ctx context.Context) *Entry {
 | 
			
		||||
	entry := logger.newEntry()
 | 
			
		||||
	defer logger.releaseEntry(entry)
 | 
			
		||||
	return entry.WithContext(ctx)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Overrides the time of the log entry.
 | 
			
		||||
func (logger *Logger) WithTime(t time.Time) *Entry {
 | 
			
		||||
	entry := logger.newEntry()
 | 
			
		||||
@@ -131,28 +139,24 @@ func (logger *Logger) WithTime(t time.Time) *Entry {
 | 
			
		||||
	return entry.WithTime(t)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Tracef(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
func (logger *Logger) Logf(level Level, format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Tracef(format, args...)
 | 
			
		||||
		entry.Logf(level, format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Tracef(format string, args ...interface{}) {
 | 
			
		||||
	logger.Logf(TraceLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Debugf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Debugf(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logf(DebugLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Infof(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Infof(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logf(InfoLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Printf(format string, args ...interface{}) {
 | 
			
		||||
@@ -162,139 +166,91 @@ func (logger *Logger) Printf(format string, args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warnf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warnf(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logf(WarnLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warningf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warnf(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Warnf(format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Errorf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Errorf(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logf(ErrorLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Fatalf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Fatalf(format, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logf(FatalLevel, format, args...)
 | 
			
		||||
	logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Panicf(format string, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
	logger.Logf(PanicLevel, format, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Log(level Level, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Panicf(format, args...)
 | 
			
		||||
		entry.Log(level, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Trace(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Trace(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(TraceLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Debug(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Debug(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(DebugLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Info(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Info(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(InfoLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Print(args ...interface{}) {
 | 
			
		||||
	entry := logger.newEntry()
 | 
			
		||||
	entry.Info(args...)
 | 
			
		||||
	entry.Print(args...)
 | 
			
		||||
	logger.releaseEntry(entry)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warn(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warn(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(WarnLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warning(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warn(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Warn(args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Error(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Error(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(ErrorLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Fatal(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Fatal(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Log(FatalLevel, args...)
 | 
			
		||||
	logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Panic(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
	logger.Log(PanicLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Logln(level Level, args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(level) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Panic(args...)
 | 
			
		||||
		entry.Logln(level, args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Traceln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(TraceLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Traceln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(TraceLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Debugln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(DebugLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Debugln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(DebugLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Infoln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(InfoLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Infoln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(InfoLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Println(args ...interface{}) {
 | 
			
		||||
@@ -304,44 +260,24 @@ func (logger *Logger) Println(args ...interface{}) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warnln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warnln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(WarnLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Warningln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(WarnLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Warnln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Warnln(args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Errorln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(ErrorLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Errorln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(ErrorLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Fatalln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(FatalLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Fatalln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(FatalLevel, args...)
 | 
			
		||||
	logger.Exit(1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Panicln(args ...interface{}) {
 | 
			
		||||
	if logger.IsLevelEnabled(PanicLevel) {
 | 
			
		||||
		entry := logger.newEntry()
 | 
			
		||||
		entry.Panicln(args...)
 | 
			
		||||
		logger.releaseEntry(entry)
 | 
			
		||||
	}
 | 
			
		||||
	logger.Logln(PanicLevel, args...)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (logger *Logger) Exit(code int) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										42
									
								
								vendor/github.com/sirupsen/logrus/logrus.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/sirupsen/logrus/logrus.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,24 +14,11 @@ type Level uint32
 | 
			
		||||
 | 
			
		||||
// Convert the Level to a string. E.g. PanicLevel becomes "panic".
 | 
			
		||||
func (level Level) String() string {
 | 
			
		||||
	switch level {
 | 
			
		||||
	case TraceLevel:
 | 
			
		||||
		return "trace"
 | 
			
		||||
	case DebugLevel:
 | 
			
		||||
		return "debug"
 | 
			
		||||
	case InfoLevel:
 | 
			
		||||
		return "info"
 | 
			
		||||
	case WarnLevel:
 | 
			
		||||
		return "warning"
 | 
			
		||||
	case ErrorLevel:
 | 
			
		||||
		return "error"
 | 
			
		||||
	case FatalLevel:
 | 
			
		||||
		return "fatal"
 | 
			
		||||
	case PanicLevel:
 | 
			
		||||
		return "panic"
 | 
			
		||||
	if b, err := level.MarshalText(); err == nil {
 | 
			
		||||
		return string(b)
 | 
			
		||||
	} else {
 | 
			
		||||
		return "unknown"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return "unknown"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ParseLevel takes a string level and returns the Logrus log level constant.
 | 
			
		||||
@@ -69,6 +56,27 @@ func (level *Level) UnmarshalText(text []byte) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (level Level) MarshalText() ([]byte, error) {
 | 
			
		||||
	switch level {
 | 
			
		||||
	case TraceLevel:
 | 
			
		||||
		return []byte("trace"), nil
 | 
			
		||||
	case DebugLevel:
 | 
			
		||||
		return []byte("debug"), nil
 | 
			
		||||
	case InfoLevel:
 | 
			
		||||
		return []byte("info"), nil
 | 
			
		||||
	case WarnLevel:
 | 
			
		||||
		return []byte("warning"), nil
 | 
			
		||||
	case ErrorLevel:
 | 
			
		||||
		return []byte("error"), nil
 | 
			
		||||
	case FatalLevel:
 | 
			
		||||
		return []byte("fatal"), nil
 | 
			
		||||
	case PanicLevel:
 | 
			
		||||
		return []byte("panic"), nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil, fmt.Errorf("not a valid logrus level %d", level)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// A constant exposing all logging levels
 | 
			
		||||
var AllLevels = []Level{
 | 
			
		||||
	PanicLevel,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
// +build darwin dragonfly freebsd netbsd openbsd
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import "golang.org/x/sys/unix"
 | 
			
		||||
 | 
			
		||||
const ioctlReadTermios = unix.TIOCGETA
 | 
			
		||||
 | 
			
		||||
func isTerminal(fd int) bool {
 | 
			
		||||
	_, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
 | 
			
		||||
	return err == nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
// +build js
 | 
			
		||||
// +build js nacl plan9
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,18 +1,16 @@
 | 
			
		||||
// +build !appengine,!js,!windows
 | 
			
		||||
// +build !appengine,!js,!windows,!nacl,!plan9
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/crypto/ssh/terminal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func checkIfTerminal(w io.Writer) bool {
 | 
			
		||||
	switch v := w.(type) {
 | 
			
		||||
	case *os.File:
 | 
			
		||||
		return terminal.IsTerminal(int(v.Fd()))
 | 
			
		||||
		return isTerminal(int(v.Fd()))
 | 
			
		||||
	default:
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IsTerminal returns true if the given file descriptor is a terminal.
 | 
			
		||||
func isTerminal(fd int) bool {
 | 
			
		||||
	_, err := unix.IoctlGetTermio(fd, unix.TCGETA)
 | 
			
		||||
	return err == nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
// +build linux aix
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import "golang.org/x/sys/unix"
 | 
			
		||||
 | 
			
		||||
const ioctlReadTermios = unix.TCGETS
 | 
			
		||||
 | 
			
		||||
func isTerminal(fd int) bool {
 | 
			
		||||
	_, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
 | 
			
		||||
	return err == nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/sirupsen/logrus/terminal_check_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,15 +6,29 @@ import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"syscall"
 | 
			
		||||
 | 
			
		||||
	sequences "github.com/konsorten/go-windows-terminal-sequences"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
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:
 | 
			
		||||
		var mode uint32
 | 
			
		||||
		err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode)
 | 
			
		||||
		return err == nil
 | 
			
		||||
		ret = (err == nil)
 | 
			
		||||
	default:
 | 
			
		||||
		return false
 | 
			
		||||
		ret = false
 | 
			
		||||
	}
 | 
			
		||||
	if ret {
 | 
			
		||||
		initTerminal(w)
 | 
			
		||||
	}
 | 
			
		||||
	return ret
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/sirupsen/logrus/terminal_notwindows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/sirupsen/logrus/terminal_notwindows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,8 +0,0 @@
 | 
			
		||||
// +build !windows
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import "io"
 | 
			
		||||
 | 
			
		||||
func initTerminal(w io.Writer) {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								vendor/github.com/sirupsen/logrus/terminal_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/sirupsen/logrus/terminal_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,18 +0,0 @@
 | 
			
		||||
// +build !appengine,!js,windows
 | 
			
		||||
 | 
			
		||||
package logrus
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"syscall"
 | 
			
		||||
 | 
			
		||||
	sequences "github.com/konsorten/go-windows-terminal-sequences"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func initTerminal(w io.Writer) {
 | 
			
		||||
	switch v := w.(type) {
 | 
			
		||||
	case *os.File:
 | 
			
		||||
		sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										88
									
								
								vendor/github.com/sirupsen/logrus/text_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										88
									
								
								vendor/github.com/sirupsen/logrus/text_formatter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,6 +4,7 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"sort"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync"
 | 
			
		||||
@@ -11,18 +12,13 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	nocolor = 0
 | 
			
		||||
	red     = 31
 | 
			
		||||
	green   = 32
 | 
			
		||||
	yellow  = 33
 | 
			
		||||
	blue    = 36
 | 
			
		||||
	gray    = 37
 | 
			
		||||
	red    = 31
 | 
			
		||||
	yellow = 33
 | 
			
		||||
	blue   = 36
 | 
			
		||||
	gray   = 37
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	baseTimestamp time.Time
 | 
			
		||||
	emptyFieldMap FieldMap
 | 
			
		||||
)
 | 
			
		||||
var baseTimestamp time.Time
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	baseTimestamp = time.Now()
 | 
			
		||||
@@ -76,21 +72,23 @@ type TextFormatter struct {
 | 
			
		||||
	//         FieldKeyMsg:   "@message"}}
 | 
			
		||||
	FieldMap FieldMap
 | 
			
		||||
 | 
			
		||||
	// CallerPrettyfier can be set by the user to modify the content
 | 
			
		||||
	// of the function and file keys in the data when ReportCaller is
 | 
			
		||||
	// activated. If any of the returned value is the empty string the
 | 
			
		||||
	// corresponding key will be removed from fields.
 | 
			
		||||
	CallerPrettyfier func(*runtime.Frame) (function string, file string)
 | 
			
		||||
 | 
			
		||||
	terminalInitOnce sync.Once
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *TextFormatter) init(entry *Entry) {
 | 
			
		||||
	if entry.Logger != nil {
 | 
			
		||||
		f.isTerminal = checkIfTerminal(entry.Logger.Out)
 | 
			
		||||
 | 
			
		||||
		if f.isTerminal {
 | 
			
		||||
			initTerminal(entry.Logger.Out)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *TextFormatter) isColored() bool {
 | 
			
		||||
	isColored := f.ForceColors || f.isTerminal
 | 
			
		||||
	isColored := f.ForceColors || (f.isTerminal && (runtime.GOOS != "windows"))
 | 
			
		||||
 | 
			
		||||
	if f.EnvironmentOverrideColors {
 | 
			
		||||
		if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" {
 | 
			
		||||
@@ -107,14 +105,19 @@ func (f *TextFormatter) isColored() bool {
 | 
			
		||||
 | 
			
		||||
// Format renders a single log entry
 | 
			
		||||
func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
	prefixFieldClashes(entry.Data, f.FieldMap, entry.HasCaller())
 | 
			
		||||
 | 
			
		||||
	keys := make([]string, 0, len(entry.Data))
 | 
			
		||||
	for k := range entry.Data {
 | 
			
		||||
	data := make(Fields)
 | 
			
		||||
	for k, v := range entry.Data {
 | 
			
		||||
		data[k] = v
 | 
			
		||||
	}
 | 
			
		||||
	prefixFieldClashes(data, f.FieldMap, entry.HasCaller())
 | 
			
		||||
	keys := make([]string, 0, len(data))
 | 
			
		||||
	for k := range data {
 | 
			
		||||
		keys = append(keys, k)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fixedKeys := make([]string, 0, 4+len(entry.Data))
 | 
			
		||||
	var funcVal, fileVal string
 | 
			
		||||
 | 
			
		||||
	fixedKeys := make([]string, 0, 4+len(data))
 | 
			
		||||
	if !f.DisableTimestamp {
 | 
			
		||||
		fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyTime))
 | 
			
		||||
	}
 | 
			
		||||
@@ -126,8 +129,19 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
		fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyLogrusError))
 | 
			
		||||
	}
 | 
			
		||||
	if entry.HasCaller() {
 | 
			
		||||
		fixedKeys = append(fixedKeys,
 | 
			
		||||
			f.FieldMap.resolve(FieldKeyFunc), f.FieldMap.resolve(FieldKeyFile))
 | 
			
		||||
		if f.CallerPrettyfier != nil {
 | 
			
		||||
			funcVal, fileVal = f.CallerPrettyfier(entry.Caller)
 | 
			
		||||
		} else {
 | 
			
		||||
			funcVal = entry.Caller.Function
 | 
			
		||||
			fileVal = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if funcVal != "" {
 | 
			
		||||
			fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyFunc))
 | 
			
		||||
		}
 | 
			
		||||
		if fileVal != "" {
 | 
			
		||||
			fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyFile))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if !f.DisableSorting {
 | 
			
		||||
@@ -160,8 +174,9 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
		timestampFormat = defaultTimestampFormat
 | 
			
		||||
	}
 | 
			
		||||
	if f.isColored() {
 | 
			
		||||
		f.printColored(b, entry, keys, timestampFormat)
 | 
			
		||||
		f.printColored(b, entry, keys, data, timestampFormat)
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
		for _, key := range fixedKeys {
 | 
			
		||||
			var value interface{}
 | 
			
		||||
			switch {
 | 
			
		||||
@@ -174,11 +189,11 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
			case key == f.FieldMap.resolve(FieldKeyLogrusError):
 | 
			
		||||
				value = entry.err
 | 
			
		||||
			case key == f.FieldMap.resolve(FieldKeyFunc) && entry.HasCaller():
 | 
			
		||||
				value = entry.Caller.Function
 | 
			
		||||
				value = funcVal
 | 
			
		||||
			case key == f.FieldMap.resolve(FieldKeyFile) && entry.HasCaller():
 | 
			
		||||
				value = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
 | 
			
		||||
				value = fileVal
 | 
			
		||||
			default:
 | 
			
		||||
				value = entry.Data[key]
 | 
			
		||||
				value = data[key]
 | 
			
		||||
			}
 | 
			
		||||
			f.appendKeyValue(b, key, value)
 | 
			
		||||
		}
 | 
			
		||||
@@ -188,7 +203,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
 | 
			
		||||
	return b.Bytes(), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
 | 
			
		||||
func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, data Fields, timestampFormat string) {
 | 
			
		||||
	var levelColor int
 | 
			
		||||
	switch entry.Level {
 | 
			
		||||
	case DebugLevel, TraceLevel:
 | 
			
		||||
@@ -211,10 +226,21 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin
 | 
			
		||||
	entry.Message = strings.TrimSuffix(entry.Message, "\n")
 | 
			
		||||
 | 
			
		||||
	caller := ""
 | 
			
		||||
 | 
			
		||||
	if entry.HasCaller() {
 | 
			
		||||
		caller = fmt.Sprintf("%s:%d %s()",
 | 
			
		||||
			entry.Caller.File, entry.Caller.Line, entry.Caller.Function)
 | 
			
		||||
		funcVal := fmt.Sprintf("%s()", entry.Caller.Function)
 | 
			
		||||
		fileVal := fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
 | 
			
		||||
 | 
			
		||||
		if f.CallerPrettyfier != nil {
 | 
			
		||||
			funcVal, fileVal = f.CallerPrettyfier(entry.Caller)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if fileVal == "" {
 | 
			
		||||
			caller = funcVal
 | 
			
		||||
		} else if funcVal == "" {
 | 
			
		||||
			caller = fileVal
 | 
			
		||||
		} else {
 | 
			
		||||
			caller = fileVal + " " + funcVal
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if f.DisableTimestamp {
 | 
			
		||||
@@ -225,7 +251,7 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin
 | 
			
		||||
		fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s]%s %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), caller, entry.Message)
 | 
			
		||||
	}
 | 
			
		||||
	for _, k := range keys {
 | 
			
		||||
		v := entry.Data[k]
 | 
			
		||||
		v := data[k]
 | 
			
		||||
		fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k)
 | 
			
		||||
		f.appendValue(b, v)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user