Merge pull request #83 from fossyy/staging

Add file and line number tracking for warn, error, and panic loggers
This commit is contained in:
2024-09-21 20:54:53 +07:00
committed by GitHub

View File

@ -6,6 +6,8 @@ import (
"io" "io"
"log" "log"
"os" "os"
"path/filepath"
"runtime"
"time" "time"
) )
@ -46,30 +48,33 @@ func Logger() *AggregatedLogger {
slug := log.Ldate | log.Ltime slug := log.Ldate | log.Ltime
infoLogger := log.New(infoLoggerWriter, "INFO: ", slug) 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{ return &AggregatedLogger{
infoLogger: infoLogger, infoLogger: infoLogger,
warnLogger: warnLogger, warnLogger: log.New(multiLogger, "WARN: ", slug),
errorLogger: errorLogger, errorLogger: log.New(multiLogger, "ERROR: ", slug),
panicLogger: panicLogger, 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{}) { func (l *AggregatedLogger) Info(v ...interface{}) {
l.infoLogger.Println(v...) l.infoLogger.Println(v...)
} }
func (l *AggregatedLogger) Warn(v ...interface{}) { func (l *AggregatedLogger) Warn(v ...interface{}) {
l.warnLogger.Println(v...) l.warnLogger.Println(getFileAndLine(), fmt.Sprint(v...))
} }
func (l *AggregatedLogger) Error(v ...interface{}) { func (l *AggregatedLogger) Error(v ...interface{}) {
l.errorLogger.Println(v...) l.errorLogger.Println(getFileAndLine(), fmt.Sprint(v...))
} }
func (l *AggregatedLogger) Panic(v ...interface{}) { func (l *AggregatedLogger) Panic(v ...interface{}) {
l.panicLogger.Panic(v...) l.panicLogger.Panic(getFileAndLine(), fmt.Sprint(v...))
} }