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 }