From 35d3e4b332d1e7c6158689e71fc9ac3f055ea236 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Fri, 27 Aug 2021 18:55:08 +0300 Subject: [PATCH] logger: breaking changes to log level parsing Signed-off-by: Vasiliy Tolstov --- logger/default.go | 9 --------- logger/level.go | 40 ++++++++++++++++++---------------------- logger/logger.go | 7 +++++-- 3 files changed, 23 insertions(+), 33 deletions(-) diff --git a/logger/default.go b/logger/default.go index 87974e5c..782a1230 100644 --- a/logger/default.go +++ b/logger/default.go @@ -11,15 +11,6 @@ import ( "time" ) -func init() { - lvl, err := GetLevel(os.Getenv("MICRO_LOG_LEVEL")) - if err != nil { - lvl = InfoLevel - } - - DefaultLogger = NewLogger(WithLevel(lvl)) -} - type defaultLogger struct { enc *json.Encoder opts Options diff --git a/logger/level.go b/logger/level.go index 95123f46..c51f4173 100644 --- a/logger/level.go +++ b/logger/level.go @@ -1,24 +1,20 @@ package logger -import ( - "fmt" -) - // Level means logger level type Level int8 const ( - // TraceLevel level. Designates finer-grained informational events than the Debug. + // TraceLevel level usually used to find bugs, very verbose TraceLevel Level = iota - 2 - // DebugLevel level. Usually only enabled when debugging. Very verbose logging. + // DebugLevel level used only when enabled debugging DebugLevel - // InfoLevel level. General operational entries about what's going on inside the application. + // InfoLevel level used for general info about what's going on inside the application InfoLevel - // WarnLevel level. Non-critical entries that deserve eyes. + // WarnLevel level used for non-critical entries WarnLevel - // ErrorLevel level. Used for errors that should definitely be noted. + // ErrorLevel level used for errors that should definitely be noted ErrorLevel - // FatalLevel level. Logs and then calls `os.Exit(1)`. highest level of severity. + // FatalLevel level used for critical errors and then calls `os.Exit(1)` FatalLevel ) @@ -38,7 +34,7 @@ func (l Level) String() string { case FatalLevel: return "fatal" } - return "" + return "info" } // Enabled returns true if the given level is at or above this level. @@ -46,22 +42,22 @@ func (l Level) Enabled(lvl Level) bool { return lvl >= l } -// 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 { +// ParseLevel converts a level string into a logger Level value. +// returns an InfoLevel if the input string does not match known values. +func ParseLevel(lvl string) Level { + switch lvl { case TraceLevel.String(): - return TraceLevel, nil + return TraceLevel case DebugLevel.String(): - return DebugLevel, nil + return DebugLevel case InfoLevel.String(): - return InfoLevel, nil + return InfoLevel case WarnLevel.String(): - return WarnLevel, nil + return WarnLevel case ErrorLevel.String(): - return ErrorLevel, nil + return ErrorLevel case FatalLevel.String(): - return FatalLevel, nil + return FatalLevel } - return InfoLevel, fmt.Errorf("unknown Level String: '%s', use InfoLevel", levelStr) + return InfoLevel } diff --git a/logger/logger.go b/logger/logger.go index c31d4b62..656769e3 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -1,11 +1,14 @@ // Package logger provides a log interface package logger -import "context" +import ( + "context" + "os" +) var ( // DefaultLogger variable - DefaultLogger Logger = NewLogger() + DefaultLogger Logger = NewLogger(WithLevel(ParseLevel(os.Getenv("MICRO_LOG_LEVEL")))) // DefaultLevel used by logger DefaultLevel Level = InfoLevel // DefaultCallerSkipCount used by logger