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  }