From 2d6a22a112b91db3560bb3e6872f1a0794204209 Mon Sep 17 00:00:00 2001 From: bagas Date: Sat, 21 Sep 2024 20:54:09 +0700 Subject: [PATCH] Add file and line number tracking for warn, error, and panic loggers --- logger/logger.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/logger/logger.go b/logger/logger.go index 27689bb..d3e4240 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -6,6 +6,8 @@ import ( "io" "log" "os" + "path/filepath" + "runtime" "time" ) @@ -46,30 +48,33 @@ func Logger() *AggregatedLogger { slug := log.Ldate | log.Ltime infoLogger := log.New(infoLoggerWriter, "INFO: ", slug) - warnLogger := log.New(multiLogger, "WARN: ", slug) - errorLogger := log.New(multiLogger, "ERROR: ", slug) - panicLogger := log.New(multiLogger, "PANIC: ", slug) return &AggregatedLogger{ infoLogger: infoLogger, - warnLogger: warnLogger, - errorLogger: errorLogger, - panicLogger: panicLogger, + warnLogger: log.New(multiLogger, "WARN: ", slug), + errorLogger: log.New(multiLogger, "ERROR: ", slug), + panicLogger: log.New(multiLogger, "PANIC: ", slug), } } +func getFileAndLine() string { + _, file, line, _ := runtime.Caller(2) + filename := filepath.Base(file) + return fmt.Sprintf("%s:%d", filename, line) +} + func (l *AggregatedLogger) Info(v ...interface{}) { l.infoLogger.Println(v...) } func (l *AggregatedLogger) Warn(v ...interface{}) { - l.warnLogger.Println(v...) + l.warnLogger.Println(getFileAndLine(), fmt.Sprint(v...)) } func (l *AggregatedLogger) Error(v ...interface{}) { - l.errorLogger.Println(v...) + l.errorLogger.Println(getFileAndLine(), fmt.Sprint(v...)) } func (l *AggregatedLogger) Panic(v ...interface{}) { - l.panicLogger.Panic(v...) + l.panicLogger.Panic(getFileAndLine(), fmt.Sprint(v...)) }