fix: console logger regression with dynamic logger webhook registration (#14346)

fixes a regression from #14289
This commit is contained in:
Harshavardhana 2022-02-17 17:50:10 -08:00 committed by GitHub
parent 1dbb3f6f43
commit 65b1a4282e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 1 deletions

View File

@ -129,7 +129,7 @@ func (sys *HTTPConsoleLoggerSys) Endpoint() string {
// String - stringer function for interface compatibility // String - stringer function for interface compatibility
func (sys *HTTPConsoleLoggerSys) String() string { func (sys *HTTPConsoleLoggerSys) String() string {
return "console+http" return logger.ConsoleLoggerTgt
} }
// Content returns the console stdout log // Content returns the console stdout log

View File

@ -29,6 +29,9 @@ import (
c "github.com/minio/pkg/console" c "github.com/minio/pkg/console"
) )
// ConsoleLoggerTgt is a stringified value to represent console logging
const ConsoleLoggerTgt = "console+http"
// Logger interface describes the methods that need to be implemented to satisfy the interface requirements. // Logger interface describes the methods that need to be implemented to satisfy the interface requirements.
type Logger interface { type Logger interface {
json(msg string, args ...interface{}) json(msg string, args ...interface{})

View File

@ -139,6 +139,14 @@ func UpdateTargets(cfg Config) error {
} }
swapMu.Lock() swapMu.Lock()
for _, tgt := range targets {
// Preserve console target when dynamically updating
// other HTTP targets, console target is always present.
if tgt.String() == ConsoleLoggerTgt {
updated = append(updated, tgt)
break
}
}
atomic.StoreInt32(&nTargets, int32(len(updated))) atomic.StoreInt32(&nTargets, int32(len(updated)))
cancelAllTargets() // cancel running targets cancelAllTargets() // cancel running targets
targets = updated targets = updated