Merge pull request #83 from fossyy/staging
Add file and line number tracking for warn, error, and panic loggers
This commit is contained in:
@ -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...))
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user