add vendoring
This commit is contained in:
188
vendor/gitlab.com/etke.cc/go/logger/logger.go
generated
vendored
Normal file
188
vendor/gitlab.com/etke.cc/go/logger/logger.go
generated
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/getsentry/sentry-go"
|
||||
)
|
||||
|
||||
// Logger struct
|
||||
type Logger struct {
|
||||
log *log.Logger
|
||||
hub *sentry.Hub
|
||||
level int
|
||||
}
|
||||
|
||||
const (
|
||||
// TRACE level
|
||||
TRACE int = iota
|
||||
// DEBUG level
|
||||
DEBUG
|
||||
// INFO level
|
||||
INFO
|
||||
// WARNING level
|
||||
WARNING
|
||||
// ERROR level
|
||||
ERROR
|
||||
// FATAL level
|
||||
FATAL
|
||||
)
|
||||
|
||||
var (
|
||||
txtLevelMap = map[string]int{
|
||||
"TRACE": TRACE,
|
||||
"DEBUG": DEBUG,
|
||||
"INFO": INFO,
|
||||
"WARNING": WARNING,
|
||||
"ERROR": ERROR,
|
||||
"FATAL": FATAL,
|
||||
}
|
||||
levelMap = map[int]string{
|
||||
TRACE: "TRACE",
|
||||
DEBUG: "DEBUG",
|
||||
INFO: "INFO",
|
||||
WARNING: "WARNING",
|
||||
ERROR: "ERROR",
|
||||
FATAL: "FATAL",
|
||||
}
|
||||
sentryLevelMap = map[int]sentry.Level{
|
||||
TRACE: sentry.LevelDebug,
|
||||
DEBUG: sentry.LevelDebug,
|
||||
INFO: sentry.LevelInfo,
|
||||
WARNING: sentry.LevelWarning,
|
||||
ERROR: sentry.LevelError,
|
||||
FATAL: sentry.LevelFatal,
|
||||
}
|
||||
)
|
||||
|
||||
// New creates new Logger object
|
||||
func New(prefix string, level string, sentryHub ...*sentry.Hub) *Logger {
|
||||
levelID, ok := txtLevelMap[strings.ToUpper(level)]
|
||||
if !ok {
|
||||
levelID = INFO
|
||||
}
|
||||
var hub *sentry.Hub
|
||||
if len(sentryHub) > 0 {
|
||||
hub = sentryHub[0]
|
||||
}
|
||||
|
||||
return &Logger{log: log.New(os.Stdout, prefix, 0), level: levelID, hub: hub}
|
||||
}
|
||||
|
||||
// GetHub returns sentry hub (either attached to the logger when called New() or current sentry hub)
|
||||
func (l *Logger) GetHub() *sentry.Hub {
|
||||
if l.hub == nil {
|
||||
return sentry.CurrentHub()
|
||||
}
|
||||
|
||||
return l.hub
|
||||
}
|
||||
|
||||
// GetLog returns underlying Logger object, useful in cases where log.Logger required
|
||||
func (l *Logger) GetLog() *log.Logger {
|
||||
return l.log
|
||||
}
|
||||
|
||||
// GetLevel (current)
|
||||
func (l *Logger) GetLevel() string {
|
||||
return levelMap[l.level]
|
||||
}
|
||||
|
||||
// Fatal log and exit
|
||||
func (l *Logger) Fatal(message string, args ...interface{}) {
|
||||
l.log.Panicln("FATAL", fmt.Sprintf(message, args...))
|
||||
}
|
||||
|
||||
// Error log
|
||||
func (l *Logger) Error(message string, args ...interface{}) {
|
||||
// do not recover
|
||||
if strings.HasPrefix(message, "recovery()") {
|
||||
return
|
||||
}
|
||||
|
||||
message = fmt.Sprintf(message, args...)
|
||||
l.GetHub().AddBreadcrumb(&sentry.Breadcrumb{
|
||||
Category: l.log.Prefix(),
|
||||
Message: message,
|
||||
Level: sentryLevelMap[ERROR],
|
||||
}, nil)
|
||||
|
||||
if l.level > ERROR {
|
||||
return
|
||||
}
|
||||
|
||||
l.log.Println("ERROR", message)
|
||||
}
|
||||
|
||||
// Warn log
|
||||
func (l *Logger) Warn(message string, args ...interface{}) {
|
||||
message = fmt.Sprintf(message, args...)
|
||||
l.GetHub().AddBreadcrumb(&sentry.Breadcrumb{
|
||||
Category: l.log.Prefix(),
|
||||
Message: message,
|
||||
Level: sentryLevelMap[WARNING],
|
||||
}, nil)
|
||||
if l.level > WARNING {
|
||||
return
|
||||
}
|
||||
|
||||
l.log.Println("WARNING", message)
|
||||
}
|
||||
|
||||
// Warnfln for mautrix.Logger
|
||||
func (l *Logger) Warnfln(message string, args ...interface{}) {
|
||||
l.Warn(message, args...)
|
||||
}
|
||||
|
||||
// Info log
|
||||
func (l *Logger) Info(message string, args ...interface{}) {
|
||||
message = fmt.Sprintf(message, args...)
|
||||
l.GetHub().AddBreadcrumb(&sentry.Breadcrumb{
|
||||
Category: l.log.Prefix(),
|
||||
Message: message,
|
||||
Level: sentryLevelMap[INFO],
|
||||
}, nil)
|
||||
if l.level > INFO {
|
||||
return
|
||||
}
|
||||
|
||||
l.log.Println("INFO", message)
|
||||
}
|
||||
|
||||
// Debug log
|
||||
func (l *Logger) Debug(message string, args ...interface{}) {
|
||||
message = fmt.Sprintf(message, args...)
|
||||
l.GetHub().AddBreadcrumb(&sentry.Breadcrumb{
|
||||
Category: l.log.Prefix(),
|
||||
Message: message,
|
||||
Level: sentryLevelMap[DEBUG],
|
||||
}, nil)
|
||||
if l.level > DEBUG {
|
||||
return
|
||||
}
|
||||
|
||||
l.log.Println("DEBUG", message)
|
||||
}
|
||||
|
||||
// Debugfln for mautrix.Logger
|
||||
func (l *Logger) Debugfln(message string, args ...interface{}) {
|
||||
l.Debug(message, args...)
|
||||
}
|
||||
|
||||
// Trace log
|
||||
func (l *Logger) Trace(message string, args ...interface{}) {
|
||||
message = fmt.Sprintf(message, args...)
|
||||
l.GetHub().AddBreadcrumb(&sentry.Breadcrumb{
|
||||
Category: l.log.Prefix(),
|
||||
Message: message,
|
||||
Level: sentryLevelMap[TRACE],
|
||||
}, nil)
|
||||
if l.level > TRACE {
|
||||
return
|
||||
}
|
||||
|
||||
l.log.Println("TRACE", message)
|
||||
}
|
||||
Reference in New Issue
Block a user