github.com/TIBCOSoftware/flogo-lib@v0.5.9/logger/logger.go (about)

     1  package logger
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  type Logger interface {
     8  	Debug(args ...interface{})
     9  	Debugf(format string, args ...interface{})
    10  	Info(args ...interface{})
    11  	Infof(format string, args ...interface{})
    12  	Warn(args ...interface{})
    13  	Warnf(format string, args ...interface{})
    14  	Error(args ...interface{})
    15  	Errorf(format string, args ...interface{})
    16  	SetLogLevel(Level)
    17  	GetLogLevel() Level
    18  }
    19  
    20  type LoggerFactory interface {
    21  	GetLogger(name string) Logger
    22  }
    23  
    24  type Level int
    25  
    26  const (
    27  	DebugLevel Level = iota
    28  	InfoLevel
    29  	WarnLevel
    30  	ErrorLevel
    31  )
    32  
    33  var levelNames = initLevelNames()
    34  
    35  func initLevelNames() map[string]Level {
    36  	newLevelNames := make(map[string]Level, 4)
    37  	newLevelNames["DEBUG"] = DebugLevel
    38  	newLevelNames["INFO"] = InfoLevel
    39  	newLevelNames["WARN"] = WarnLevel
    40  	newLevelNames["ERROR"] = ErrorLevel
    41  	return newLevelNames
    42  }
    43  
    44  var logFactory LoggerFactory
    45  
    46  func RegisterLoggerFactory(factory LoggerFactory) {
    47  	logFactory = factory
    48  }
    49  
    50  // GetLogger returns the Logger using the logFactory registered.
    51  // Returns nil if no factory is found
    52  func GetLogger(name string) Logger {
    53  	if logFactory == nil {
    54  		return nil
    55  	}
    56  	return logFactory.GetLogger(name)
    57  }
    58  
    59  func GetLevelForName(name string) (Level, error) {
    60  	levelForName, ok := levelNames[name]
    61  	if !ok {
    62  		return 0, fmt.Errorf("unsupported Log Level '%s'", name)
    63  	}
    64  	return levelForName, nil
    65  }