github.com/GuanceCloud/cliutils@v1.1.21/logger/stdout.go (about) 1 // Unless explicitly stated otherwise all files in this repository are licensed 2 // under the MIT License. 3 // This product includes software developed at Guance Cloud (https://www.guance.com/). 4 // Copyright 2021-present Guance, Inc. 5 6 package logger 7 8 import ( 9 "fmt" 10 11 "go.uber.org/zap" 12 ) 13 14 var ( 15 defaultStdoutRootLogger *zap.Logger // used for logging where root logger not setted 16 StdoutColor bool 17 StdoutLevel = DEBUG 18 ) 19 20 func doInitStdoutLogger() error { 21 flags := OPT_DEFAULT 22 if StdoutColor { 23 flags |= OPT_COLOR 24 } 25 26 var err error 27 defaultStdoutRootLogger, err = stdoutLogger(StdoutLevel, flags) 28 if err != nil { 29 return err 30 } 31 return nil 32 } 33 34 func doSetStdoutLogger(opt *Option) error { 35 // reset default stdout logger 36 defaultStdoutRootLogger = nil 37 var err error 38 defaultStdoutRootLogger, err = stdoutLogger(opt.Level, opt.Flags) 39 if err != nil { 40 return fmt.Errorf("stdoutLogger: %w", err) 41 } 42 return nil 43 } 44 45 func stdoutLogger(level string, options int) (*zap.Logger, error) { 46 opt := options | OPT_STDOUT 47 48 if rootlogger, err := newRootLogger("", level, opt); err != nil { 49 return nil, err 50 } else { 51 return rootlogger, err 52 } 53 }