Add file and line number tracking for warn, error, and panic loggers

This commit is contained in:
2024-09-21 20:54:09 +07:00
parent 3cc0322aa1
commit 2d6a22a112

View File

@ -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...))
}