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  }