From 0edf42ed3ab1b4f24a4435f0c0f6315e887d7a1f Mon Sep 17 00:00:00 2001 From: Bruno Meneguele Date: Tue, 22 Jun 2021 19:58:30 -0300 Subject: [PATCH] internal/logger: export Logger structure The Logger structure was not exported, preventing some code completion systems to work properly. This patch exports it, but let the internal information private. Signed-off-by: Bruno Meneguele --- internal/logger/logger.go | 50 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/internal/logger/logger.go b/internal/logger/logger.go index aca16ab1..41b24e5e 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -19,10 +19,10 @@ const ( LOG_DEBUG ) -// This internal logger will have a different log.Logger for each level, -// allowing different destination (file or fd) in different levels and -// also different prefixes. -type logger struct { +// Logger represents lab's internal logger structure, which has a different +// log.Logger for each level, allowing different destination (file or fd) in +// different levels and also different prefixes. +type Logger struct { level int errorLogger *log.Logger warnLogger *log.Logger @@ -31,15 +31,15 @@ type logger struct { } // Internal instance that is used by anyone getting it through GetInstance() -var internalLogger *logger +var internalLogger *Logger // A way to avoid multiple initialization of the same logger var once sync.Once // GetInstance returns the default lab internal logger -func GetInstance() *logger { +func GetInstance() *Logger { once.Do(func() { - internalLogger = &logger{ + internalLogger = &Logger{ // Set INFO as default level. The user can change it level: LOG_INFO, // Setting Lmsgprefix preffix make the prefix to be printed before @@ -55,7 +55,7 @@ func GetInstance() *logger { // SetLogLevel set the level of the internal logger. // Allowed values are LOG_{ERROR,INFO,DEBUG,NONE}. -func (l *logger) SetLogLevel(level int) error { +func (l *Logger) SetLogLevel(level int) error { if !(level >= LOG_NONE && level <= LOG_DEBUG) { return errors.New("invalid log level") } @@ -64,13 +64,13 @@ func (l *logger) SetLogLevel(level int) error { } // LogLevel return de current log level of the internal logger -func (l *logger) LogLevel() int { +func (l *Logger) LogLevel() int { return l.level } // SetStdDest sets what's the desired stdout and stderr for the internal // log. It can be any io.Writer value. -func (l *logger) SetStdDest(stdout io.Writer, stderr io.Writer) { +func (l *Logger) SetStdDest(stdout io.Writer, stderr io.Writer) { l.errorLogger.SetOutput(stderr) l.warnLogger.SetOutput(stdout) l.infoLogger.SetOutput(stdout) @@ -115,19 +115,19 @@ func addFileLinePrefix(msg string) string { } // Fatal prints the values and exit the program with os.Exit() -func (l *logger) Fatal(values ...interface{}) { +func (l *Logger) Fatal(values ...interface{}) { values = append([]interface{}{addFileLinePrefix(" ")}, values...) l.errorLogger.Fatal(values...) } // Fatal prints formated strings and exit the program with os.Exit() -func (l *logger) Fatalf(format string, values ...interface{}) { +func (l *Logger) Fatalf(format string, values ...interface{}) { values = append([]interface{}{addFileLinePrefix("")}, values...) l.errorLogger.Fatalf("%s "+format, values...) } // Fatal prints the values in a new line and exit the program with os.Exit() -func (l *logger) Fatalln(values ...interface{}) { +func (l *Logger) Fatalln(values ...interface{}) { values = append([]interface{}{addFileLinePrefix(" ")}, values...) l.errorLogger.Fatalln(values...) } @@ -136,7 +136,7 @@ func (l *logger) Fatalln(values ...interface{}) { // These parameters match the retryablehttp.LeveledLogger, which we want to // satisfy for silencing their debug messages being printed in the stdout. // Error message are always printed, regardless the log level. -func (l *logger) Error(msg string, keysAndValues ...interface{}) { +func (l *Logger) Error(msg string, keysAndValues ...interface{}) { if l.level >= LOG_ERROR { l.errorLogger.Print(addFileLinePrefix(msg)) printKeysAndValues(l.errorLogger, keysAndValues...) @@ -145,7 +145,7 @@ func (l *logger) Error(msg string, keysAndValues ...interface{}) { // Errorf prints formated error message (prefixed with "ERROR:"). // Error message are always printed, regardless the log level. -func (l *logger) Errorf(format string, values ...interface{}) { +func (l *Logger) Errorf(format string, values ...interface{}) { if l.level >= LOG_ERROR { values = append([]interface{}{addFileLinePrefix("")}, values...) l.errorLogger.Printf("%s "+format, values...) @@ -154,7 +154,7 @@ func (l *logger) Errorf(format string, values ...interface{}) { // Errorln prints error values in a new line (prefixed with "ERROR:"). // Error message are always printed, regardless the log level. -func (l *logger) Errorln(values ...interface{}) { +func (l *Logger) Errorln(values ...interface{}) { if l.level >= LOG_ERROR { values = append([]interface{}{addFileLinePrefix("")}, values...) l.errorLogger.Println(values...) @@ -165,7 +165,7 @@ func (l *logger) Errorln(values ...interface{}) { // These parameters match the retryablehttp.LeveledLogger, which we want to // satisfy for silencing their debug messages being printed in the stdout. // Warning messages require at least LOG_INFO level. -func (l *logger) Warn(msg string, keysAndValues ...interface{}) { +func (l *Logger) Warn(msg string, keysAndValues ...interface{}) { if l.level >= LOG_INFO { l.warnLogger.Print(addFileLinePrefix(msg)) printKeysAndValues(l.warnLogger, keysAndValues...) @@ -174,7 +174,7 @@ func (l *logger) Warn(msg string, keysAndValues ...interface{}) { // Warnf prints formated warning message (prefixed with "WARNING:"). // Warning messages require at least LOG_INFO level. -func (l *logger) Warnf(format string, values ...interface{}) { +func (l *Logger) Warnf(format string, values ...interface{}) { if l.level >= LOG_INFO { values = append([]interface{}{addFileLinePrefix("")}, values...) l.warnLogger.Printf("%s "+format, values...) @@ -183,7 +183,7 @@ func (l *logger) Warnf(format string, values ...interface{}) { // Warnln prints warning values in a new line (prefixed with "WARNING:"). // Warning messages require at least LOG_INFO level. -func (l *logger) Warnln(values ...interface{}) { +func (l *Logger) Warnln(values ...interface{}) { if l.level >= LOG_INFO { values = append([]interface{}{addFileLinePrefix("")}, values...) l.warnLogger.Println(values...) @@ -194,7 +194,7 @@ func (l *logger) Warnln(values ...interface{}) { // These parameters match the retryablehttp.LeveledLogger, which we want to // satisfy for silencing their debug messages being printed in the stdout. // Info messages require at least LOG_INFO level. -func (l *logger) Info(msg string, keysAndValues ...interface{}) { +func (l *Logger) Info(msg string, keysAndValues ...interface{}) { if l.level >= LOG_INFO { l.infoLogger.Print(addFileLinePrefix(msg)) printKeysAndValues(l.infoLogger, keysAndValues...) @@ -203,7 +203,7 @@ func (l *logger) Info(msg string, keysAndValues ...interface{}) { // Infof prints formated informational message (prefixed with "INFO:"). // Info messages require at least LOG_INFO level. -func (l *logger) Infof(format string, values ...interface{}) { +func (l *Logger) Infof(format string, values ...interface{}) { if l.level >= LOG_INFO { values = append([]interface{}{addFileLinePrefix("")}, values...) l.infoLogger.Printf("%s "+format, values...) @@ -212,7 +212,7 @@ func (l *logger) Infof(format string, values ...interface{}) { // Infoln prints info values in a new line (prefixed with "INFO:"). // Info messages require at least LOG_INFO level. -func (l *logger) Infoln(values ...interface{}) { +func (l *Logger) Infoln(values ...interface{}) { if l.level >= LOG_INFO { values = append([]interface{}{addFileLinePrefix("")}, values...) l.infoLogger.Println(values...) @@ -223,7 +223,7 @@ func (l *logger) Infoln(values ...interface{}) { // These parameters match the retryablehttp.LeveledLogger, which we want to // satisfy for silencing thier debug messages being printed in the stdout. // Debug messages require at least LOG_DEBUG level. -func (l *logger) Debug(msg string, keysAndValues ...interface{}) { +func (l *Logger) Debug(msg string, keysAndValues ...interface{}) { if l.level >= LOG_DEBUG { l.debugLogger.Print(addFileLinePrefix(msg)) printKeysAndValues(l.debugLogger, keysAndValues...) @@ -232,7 +232,7 @@ func (l *logger) Debug(msg string, keysAndValues ...interface{}) { // Debugf prints formated debug message (prefixed with "DEBUG:"). // Debug messages require at least LOG_DEBUG level. -func (l *logger) Debugf(format string, values ...interface{}) { +func (l *Logger) Debugf(format string, values ...interface{}) { if l.level >= LOG_DEBUG { values = append([]interface{}{addFileLinePrefix("")}, values...) l.debugLogger.Printf("%s "+format, values...) @@ -241,7 +241,7 @@ func (l *logger) Debugf(format string, values ...interface{}) { // Debugln prints debug values in a new line (prefixed with "DEBUG:"). // Debug messages require at least LOG_DEBUG level. -func (l *logger) Debugln(values ...interface{}) { +func (l *Logger) Debugln(values ...interface{}) { if l.level >= LOG_DEBUG { values = append([]interface{}{addFileLinePrefix("")}, values...) l.debugLogger.Println(values...)