github.com/hxx258456/fabric-ca-gm@v0.0.3-0.20221111064038-a268ad7e3a37/internal/pkg/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 log "gitee.com/zhaochuninhefei/zcgolog/zclog" 13 "github.com/pkg/errors" 14 ) 15 16 // Constants defined for the different log levels 17 const ( 18 DEBUG = "debug" 19 INFO = "info" 20 WARNING = "warning" 21 ERROR = "error" 22 PANIC = "panic" 23 FATAL = "fatal" 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.LOG_LEVEL_INFO 52 case WARNING: 53 log.Level = log.LOG_LEVEL_WARNING 54 case DEBUG: 55 log.Level = log.LOG_LEVEL_DEBUG 56 case ERROR: 57 log.Level = log.LOG_LEVEL_ERROR 58 case PANIC: 59 log.Level = log.LOG_LEVEL_PANIC 60 case FATAL: 61 log.Level = log.LOG_LEVEL_FATAL 62 default: 63 log.Debug("Unrecognized log level, defaulting to 'info'") 64 log.Level = log.LOG_LEVEL_INFO 65 } 66 67 return nil 68 }