update go-hclog to latest release

This commit is contained in:
Drew Bailey 2019-12-18 12:53:33 -05:00
parent 8b35c75206
commit 31777c3fdb
No known key found for this signature in database
GPG Key ID: FBA61B9FB7CCE1A7
5 changed files with 49 additions and 27 deletions

View File

@ -132,7 +132,7 @@ Alternatively, you may configure the system-wide logger:
```go ```go
// log the standard logger from 'import "log"' // log the standard logger from 'import "log"'
log.SetOutput(appLogger.Writer(&hclog.StandardLoggerOptions{InferLevels: true})) log.SetOutput(appLogger.StandardWriter(&hclog.StandardLoggerOptions{InferLevels: true}))
log.SetPrefix("") log.SetPrefix("")
log.SetFlags(0) log.SetFlags(0)

View File

@ -1,5 +1,6 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
@ -13,4 +14,5 @@ github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20191008105621-543471e840be h1:QAcqgptGM8IQBC9K/RC4o+O9YmqEm0diQn9QmZw/0mU=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

View File

@ -12,7 +12,7 @@ var _ Logger = &interceptLogger{}
type interceptLogger struct { type interceptLogger struct {
Logger Logger
sync.Mutex mu *sync.Mutex
sinkCount *int32 sinkCount *int32
Sinks map[SinkAdapter]struct{} Sinks map[SinkAdapter]struct{}
} }
@ -20,6 +20,7 @@ type interceptLogger struct {
func NewInterceptLogger(opts *LoggerOptions) InterceptLogger { func NewInterceptLogger(opts *LoggerOptions) InterceptLogger {
intercept := &interceptLogger{ intercept := &interceptLogger{
Logger: New(opts), Logger: New(opts),
mu: new(sync.Mutex),
sinkCount: new(int32), sinkCount: new(int32),
Sinks: make(map[SinkAdapter]struct{}), Sinks: make(map[SinkAdapter]struct{}),
} }
@ -36,8 +37,8 @@ func (i *interceptLogger) Trace(msg string, args ...interface{}) {
return return
} }
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
for s := range i.Sinks { for s := range i.Sinks {
s.Accept(i.Name(), Trace, msg, i.retrieveImplied(args...)...) s.Accept(i.Name(), Trace, msg, i.retrieveImplied(args...)...)
} }
@ -50,8 +51,8 @@ func (i *interceptLogger) Debug(msg string, args ...interface{}) {
return return
} }
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
for s := range i.Sinks { for s := range i.Sinks {
s.Accept(i.Name(), Debug, msg, i.retrieveImplied(args...)...) s.Accept(i.Name(), Debug, msg, i.retrieveImplied(args...)...)
} }
@ -64,8 +65,8 @@ func (i *interceptLogger) Info(msg string, args ...interface{}) {
return return
} }
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
for s := range i.Sinks { for s := range i.Sinks {
s.Accept(i.Name(), Info, msg, i.retrieveImplied(args...)...) s.Accept(i.Name(), Info, msg, i.retrieveImplied(args...)...)
} }
@ -78,8 +79,8 @@ func (i *interceptLogger) Warn(msg string, args ...interface{}) {
return return
} }
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
for s := range i.Sinks { for s := range i.Sinks {
s.Accept(i.Name(), Warn, msg, i.retrieveImplied(args...)...) s.Accept(i.Name(), Warn, msg, i.retrieveImplied(args...)...)
} }
@ -92,8 +93,8 @@ func (i *interceptLogger) Error(msg string, args ...interface{}) {
return return
} }
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
for s := range i.Sinks { for s := range i.Sinks {
s.Accept(i.Name(), Error, msg, i.retrieveImplied(args...)...) s.Accept(i.Name(), Error, msg, i.retrieveImplied(args...)...)
} }
@ -178,8 +179,8 @@ func (i *interceptLogger) With(args ...interface{}) Logger {
// RegisterSink attaches a SinkAdapter to interceptLoggers sinks. // RegisterSink attaches a SinkAdapter to interceptLoggers sinks.
func (i *interceptLogger) RegisterSink(sink SinkAdapter) { func (i *interceptLogger) RegisterSink(sink SinkAdapter) {
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
i.Sinks[sink] = struct{}{} i.Sinks[sink] = struct{}{}
@ -188,8 +189,8 @@ func (i *interceptLogger) RegisterSink(sink SinkAdapter) {
// DeregisterSink removes a SinkAdapter from interceptLoggers sinks. // DeregisterSink removes a SinkAdapter from interceptLoggers sinks.
func (i *interceptLogger) DeregisterSink(sink SinkAdapter) { func (i *interceptLogger) DeregisterSink(sink SinkAdapter) {
i.Lock() i.mu.Lock()
defer i.Unlock() defer i.mu.Unlock()
delete(i.Sinks, sink) delete(i.Sinks, sink)

View File

@ -222,7 +222,8 @@ func (l *intLogger) log(t time.Time, name string, level Level, msg string, args
args = args[:len(args)-1] args = args[:len(args)-1]
stacktrace = cs stacktrace = cs
} else { } else {
args = append(args, "<unknown>") extra := args[len(args)-1]
args = append(args[:len(args)-1], MissingKey, extra)
} }
} }
@ -274,7 +275,12 @@ func (l *intLogger) log(t time.Time, name string, level Level, msg string, args
} }
l.writer.WriteByte(' ') l.writer.WriteByte(' ')
l.writer.WriteString(args[i].(string)) switch st := args[i].(type) {
case string:
l.writer.WriteString(st)
default:
l.writer.WriteString(fmt.Sprintf("%s", st))
}
l.writer.WriteByte('=') l.writer.WriteByte('=')
if !raw && strings.ContainsAny(val, " \t\n\r") { if !raw && strings.ContainsAny(val, " \t\n\r") {
@ -345,16 +351,12 @@ func (l *intLogger) logJSON(t time.Time, name string, level Level, msg string, a
args = args[:len(args)-1] args = args[:len(args)-1]
vals["stacktrace"] = cs vals["stacktrace"] = cs
} else { } else {
args = append(args, "<unknown>") extra := args[len(args)-1]
args = append(args[:len(args)-1], MissingKey, extra)
} }
} }
for i := 0; i < len(args); i = i + 2 { for i := 0; i < len(args); i = i + 2 {
if _, ok := args[i].(string); !ok {
// As this is the logging function not much we can do here
// without injecting into logs...
continue
}
val := args[i+1] val := args[i+1]
switch sv := val.(type) { switch sv := val.(type) {
case error: case error:
@ -370,7 +372,15 @@ func (l *intLogger) logJSON(t time.Time, name string, level Level, msg string, a
val = fmt.Sprintf(sv[0].(string), sv[1:]...) val = fmt.Sprintf(sv[0].(string), sv[1:]...)
} }
vals[args[i].(string)] = val var key string
switch st := args[i].(type) {
case string:
key = st
default:
key = fmt.Sprintf("%s", st)
}
vals[key] = val
} }
} }
@ -471,12 +481,17 @@ func (l *intLogger) IsError() bool {
return Level(atomic.LoadInt32(l.level)) <= Error return Level(atomic.LoadInt32(l.level)) <= Error
} }
const MissingKey = "EXTRA_VALUE_AT_END"
// Return a sub-Logger for which every emitted log message will contain // Return a sub-Logger for which every emitted log message will contain
// the given key/value pairs. This is used to create a context specific // the given key/value pairs. This is used to create a context specific
// Logger. // Logger.
func (l *intLogger) With(args ...interface{}) Logger { func (l *intLogger) With(args ...interface{}) Logger {
var extra interface{}
if len(args)%2 != 0 { if len(args)%2 != 0 {
panic("With() call requires paired arguments") extra = args[len(args)-1]
args = args[:len(args)-1]
} }
sl := *l sl := *l
@ -509,6 +524,10 @@ func (l *intLogger) With(args ...interface{}) Logger {
sl.implied = append(sl.implied, result[k]) sl.implied = append(sl.implied, result[k])
} }
if extra != nil {
sl.implied = append(sl.implied, MissingKey, extra)
}
return &sl return &sl
} }

2
vendor/vendor.json vendored
View File

@ -232,7 +232,7 @@
{"path":"github.com/hashicorp/go-envparse","checksumSHA1":"FKmqR4DC3nCXtnT9pe02z5CLNWo=","revision":"310ca1881b22af3522e3a8638c0b426629886196","revisionTime":"2018-01-19T21:58:41Z"}, {"path":"github.com/hashicorp/go-envparse","checksumSHA1":"FKmqR4DC3nCXtnT9pe02z5CLNWo=","revision":"310ca1881b22af3522e3a8638c0b426629886196","revisionTime":"2018-01-19T21:58:41Z"},
{"path":"github.com/hashicorp/go-getter","checksumSHA1":"d4brua17AGQqMNtngK4xKOUwboY=","revision":"f5101da0117392c6e7960c934f05a2fd689a5b5f","revisionTime":"2019-08-22T19:45:07Z"}, {"path":"github.com/hashicorp/go-getter","checksumSHA1":"d4brua17AGQqMNtngK4xKOUwboY=","revision":"f5101da0117392c6e7960c934f05a2fd689a5b5f","revisionTime":"2019-08-22T19:45:07Z"},
{"path":"github.com/hashicorp/go-getter/helper/url","checksumSHA1":"9J+kDr29yDrwsdu2ULzewmqGjpA=","revision":"b345bfcec894fb7ff3fdf9b21baf2f56ea423d98","revisionTime":"2018-04-10T17:49:45Z"}, {"path":"github.com/hashicorp/go-getter/helper/url","checksumSHA1":"9J+kDr29yDrwsdu2ULzewmqGjpA=","revision":"b345bfcec894fb7ff3fdf9b21baf2f56ea423d98","revisionTime":"2018-04-10T17:49:45Z"},
{"path":"github.com/hashicorp/go-hclog","checksumSHA1":"CYpA7Nmx/oTmWKIXtvO0uRhIyGk=","revision":"234833755cb25ae46996d0ef823326f492f89243","revisionTime":"2019-10-25T21:19:05Z","version":"f-multi-sink","versionExact":"f-multi-sink"}, {"path":"github.com/hashicorp/go-hclog","checksumSHA1":"p0y3e3+Oj9GJXM/OW3ISDXap5+w=","revision":"e8a977f5d6b14a15e6672edf8b1d6cd545388c7a","revisionTime":"2019-12-18T17:30:18Z","version":"v0.10.1","versionExact":"v0.10.1"},
{"path":"github.com/hashicorp/go-immutable-radix","checksumSHA1":"Cas2nprG6pWzf05A2F/OlnjUu2Y=","revision":"8aac2701530899b64bdea735a1de8da899815220","revisionTime":"2017-07-25T22:12:15Z"}, {"path":"github.com/hashicorp/go-immutable-radix","checksumSHA1":"Cas2nprG6pWzf05A2F/OlnjUu2Y=","revision":"8aac2701530899b64bdea735a1de8da899815220","revisionTime":"2017-07-25T22:12:15Z"},
{"path":"github.com/hashicorp/go-memdb","checksumSHA1":"FMAvwDar2bQyYAW4XMFhAt0J5xA=","revision":"20ff6434c1cc49b80963d45bf5c6aa89c78d8d57","revisionTime":"2017-08-31T20:15:40Z"}, {"path":"github.com/hashicorp/go-memdb","checksumSHA1":"FMAvwDar2bQyYAW4XMFhAt0J5xA=","revision":"20ff6434c1cc49b80963d45bf5c6aa89c78d8d57","revisionTime":"2017-08-31T20:15:40Z"},
{"path":"github.com/hashicorp/go-msgpack/codec","checksumSHA1":"CKGYNUDKre3Z2g4hHNVfp5nTcfA=","revision":"23165f7bc3c2dda1891434ebb9da1511a7bafc1c","revisionTime":"2019-09-27T12:33:13Z","version":"upstream-08f7b40","versionExact":"upstream-08f7b40"}, {"path":"github.com/hashicorp/go-msgpack/codec","checksumSHA1":"CKGYNUDKre3Z2g4hHNVfp5nTcfA=","revision":"23165f7bc3c2dda1891434ebb9da1511a7bafc1c","revisionTime":"2019-09-27T12:33:13Z","version":"upstream-08f7b40","versionExact":"upstream-08f7b40"},