X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/53f785c298338645b6880f22f26b0c36a7cfab4d..6613ec1e9c705fb5b950611fd160d4a2babed251:/sdk/go/logger/logger.go diff --git a/sdk/go/logger/logger.go b/sdk/go/logger/logger.go index a989afcf26..6dd7fb3723 100644 --- a/sdk/go/logger/logger.go +++ b/sdk/go/logger/logger.go @@ -23,6 +23,7 @@ package logger import ( + "fmt" "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "log" "time" @@ -36,9 +37,9 @@ const ( ) type LoggerParams struct { - Client arvadosclient.ArvadosClient // The client we use to write log entries - EventTypePrefix string // The prefix we use for the event type in the log entry - WriteInterval time.Duration // Wait at least this long between log writes + Client *arvadosclient.ArvadosClient // The client we use to write log entries + EventTypePrefix string // The prefix we use for the event type in the log entry + WriteInterval time.Duration // Wait at least this long between log writes } // A LogMutator is a function which modifies the log entry. @@ -73,16 +74,18 @@ type Logger struct { } // Create a new logger based on the specified parameters. -func NewLogger(params LoggerParams) *Logger { +func NewLogger(params LoggerParams) (l *Logger, err error) { // sanity check parameters if ¶ms.Client == nil { - log.Fatal("Nil arvados client in LoggerParams passed in to NewLogger()") + err = fmt.Errorf("Nil arvados client in LoggerParams passed in to NewLogger()") + return } if params.EventTypePrefix == "" { - log.Fatal("Empty event type prefix in LoggerParams passed in to NewLogger()") + err = fmt.Errorf("Empty event type prefix in LoggerParams passed in to NewLogger()") + return } - l := &Logger{ + l = &Logger{ data: make(map[string]interface{}), entry: make(map[string]interface{}), properties: make(map[string]interface{}), @@ -97,7 +100,7 @@ func NewLogger(params LoggerParams) *Logger { // Start the worker goroutine. go l.work() - return l + return l, nil } // Exported functions will be called from other goroutines, therefore @@ -196,7 +199,6 @@ func (l *Logger) write(isFinal bool) { // client. err := l.params.Client.Create("logs", l.data, nil) if err != nil { - log.Printf("Attempted to log: %v", l.data) - log.Fatalf("Received error writing log: %v", err) + log.Printf("Received error writing %v: %v", l.data, err) } }