github.com/extrame/fabric-ca@v2.0.0-alpha+incompatible/lib/common/log/log.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package log 8 9 import ( 10 "strings" 11 12 "github.com/cloudflare/cfssl/log" 13 "github.com/pkg/errors" 14 ) 15 16 // Constants defined for the different log levels 17 const ( 18 INFO = "info" 19 WARNING = "warning" 20 DEBUG = "debug" 21 ERROR = "error" 22 FATAL = "fatal" 23 CRITICAL = "critical" 24 ) 25 26 // SetDefaultLogLevel sets the default log level 27 func SetDefaultLogLevel(logLevel string, debug bool) { 28 log.Debug("Set default log level: ", logLevel) 29 setLogLevel(logLevel, debug, true) 30 } 31 32 // SetLogLevel sets the log level 33 func SetLogLevel(logLevel string, debug bool) error { 34 log.Debug("Set log level: ", logLevel) 35 return setLogLevel(logLevel, debug, false) 36 } 37 38 func setLogLevel(logLevel string, debug, override bool) error { 39 if debug { 40 if logLevel != "" && !override { 41 return errors.Errorf("Can't specify log level '%s' and set debug to true at the same time", logLevel) 42 } else if override { 43 logLevel = "debug" 44 } else if logLevel == "" { 45 logLevel = "debug" 46 } 47 } 48 49 switch strings.ToLower(logLevel) { 50 case INFO: 51 log.Level = log.LevelInfo 52 case WARNING: 53 log.Level = log.LevelWarning 54 case DEBUG: 55 log.Level = log.LevelDebug 56 case ERROR: 57 log.Level = log.LevelError 58 case CRITICAL: 59 log.Level = log.LevelCritical 60 case FATAL: 61 log.Level = log.LevelFatal 62 default: 63 log.Debug("Unrecognized log level, defaulting to 'info'") 64 log.Level = log.LevelInfo 65 } 66 67 return nil 68 }