mirror of
https://github.com/go-micro/go-micro.git
synced 2025-06-18 22:17:44 +02:00
logger with helper methods (#1216)
* support unix daemon socket * refactor(logger): logger fields changed to map[string]interface{} * improvement(logger): adding string to Level Parser * improvement(logger): rename ParseLevel to GetLevel * refactor(logger): adding basic logger adding micro default logger, and refactor logger interface * refactor(logger): moved basic logger to top level package * refactor(logger): adding default logger
This commit is contained in:
committed by
GitHub
parent
88457b812e
commit
3fa7c26946
@ -1,9 +1,9 @@
|
||||
// Package log provides a log interface
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
var (
|
||||
// Default logger
|
||||
DefaultLogger Logger = NewLogger()
|
||||
)
|
||||
|
||||
// Logger is a generic logging interface
|
||||
@ -24,45 +24,32 @@ type Logger interface {
|
||||
String() string
|
||||
}
|
||||
|
||||
var (
|
||||
mtx sync.Mutex
|
||||
loggerMap = map[string]Logger{}
|
||||
)
|
||||
|
||||
func Register(logger Logger) {
|
||||
mtx.Lock()
|
||||
defer mtx.Unlock()
|
||||
|
||||
loggerMap[logger.String()] = logger
|
||||
func Init(opts ...Option) error {
|
||||
return DefaultLogger.Init(opts...)
|
||||
}
|
||||
|
||||
func GetLogger(name string) (Logger, error) {
|
||||
l := loggerMap[name]
|
||||
if l == nil {
|
||||
return nil, fmt.Errorf("no such name logger found %s", name)
|
||||
func Error(err error) Logger {
|
||||
return DefaultLogger.Error(err)
|
||||
}
|
||||
|
||||
func Fields(fields map[string]interface{}) Logger {
|
||||
return DefaultLogger.Fields(fields)
|
||||
}
|
||||
|
||||
func Log(level Level, v ...interface{}) {
|
||||
DefaultLogger.Log(level, v...)
|
||||
}
|
||||
|
||||
func Logf(level Level, format string, v ...interface{}) {
|
||||
DefaultLogger.Logf(level, format, v...)
|
||||
}
|
||||
|
||||
func SetGlobalLevel(lvl Level) {
|
||||
if err := Init(WithLevel(lvl)); err != nil {
|
||||
print(err)
|
||||
}
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
||||
// GetLevel converts a level string into a logger Level value.
|
||||
// returns an error if the input string does not match known values.
|
||||
func GetLevel(levelStr string) (Level, error) {
|
||||
switch levelStr {
|
||||
case TraceLevel.String():
|
||||
return TraceLevel, nil
|
||||
case DebugLevel.String():
|
||||
return DebugLevel, nil
|
||||
case InfoLevel.String():
|
||||
return InfoLevel, nil
|
||||
case WarnLevel.String():
|
||||
return WarnLevel, nil
|
||||
case ErrorLevel.String():
|
||||
return ErrorLevel, nil
|
||||
case FatalLevel.String():
|
||||
return FatalLevel, nil
|
||||
case PanicLevel.String():
|
||||
return PanicLevel, nil
|
||||
}
|
||||
return InfoLevel, fmt.Errorf("Unknown Level String: '%s', defaulting to NoLevel", levelStr)
|
||||
func String() string {
|
||||
return DefaultLogger.String()
|
||||
}
|
||||
|
Reference in New Issue
Block a user