117 lines
3.2 KiB
Go
117 lines
3.2 KiB
Go
package logger
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/getsentry/sentry-go"
|
|
"os"
|
|
)
|
|
|
|
var (
|
|
colorsTags = map[string]string{
|
|
"Reset": "\033[0m",
|
|
"Bright": "\033[1m",
|
|
"Dim": "\033[2m",
|
|
"Underscore": "\033[4m",
|
|
"Blink": "\033[5m",
|
|
"Reverse": "\033[7m",
|
|
"Hidden": "\033[8m",
|
|
|
|
"FgBlack": "\033[30m",
|
|
"FgRed": "\033[31m",
|
|
"FgGreen": "\033[32m",
|
|
"FgYellow": "\033[33m",
|
|
"FgBlue": "\033[34m",
|
|
"FgMagenta": "\033[35m",
|
|
"FgCyan": "\033[36m",
|
|
"FgWhite": "\033[37m",
|
|
"FgGray": "\033[90m",
|
|
|
|
"BgBlack": "\033[40m",
|
|
"BgRed": "\033[41m",
|
|
"BgGreen": "\033[42m",
|
|
"BgYellow": "\033[43m",
|
|
"BgBlue": "\033[44m",
|
|
"BgMagenta": "\033[45m",
|
|
"BgCyan": "\033[46m",
|
|
"BgWhite": "\033[47m",
|
|
"BgGray": "\033[100m",
|
|
}
|
|
)
|
|
|
|
type Logger struct {
|
|
sentryEnabled bool
|
|
}
|
|
|
|
func NewLogger() *Logger {
|
|
logger := &Logger{}
|
|
if env := os.Getenv("SENTRY_ENVIRONMENT"); env != "" {
|
|
err := sentry.Init(sentry.ClientOptions{
|
|
Dsn: "https://7698f4c6119546638794f11e26ee11e9@sentry.sis.ski/11",
|
|
Environment: env,
|
|
TracesSampleRate: 1.0,
|
|
})
|
|
if err != nil {
|
|
fmt.Printf("Sentry initialization failed: %v\n", err)
|
|
} else {
|
|
logger.sentryEnabled = true
|
|
}
|
|
}
|
|
return logger
|
|
}
|
|
|
|
func (l *Logger) Info(message string) {
|
|
fmt.Printf("%sINFO%s: %s%s\n", colorsTags["BgWhite"]+colorsTags["FgBlack"], colorsTags["Reset"], message, colorsTags["Reset"])
|
|
}
|
|
|
|
func (l *Logger) Debug(message string) {
|
|
fmt.Printf("%sDEBUG%s: %s%s\n", colorsTags["BgBlue"], colorsTags["Reset"], message, colorsTags["Reset"])
|
|
}
|
|
|
|
func (l *Logger) Fatal(message string) {
|
|
fmt.Printf("%sFATAL%s: %s%s%s%s%s%s%s\n", colorsTags["Blink"]+colorsTags["BgRed"], colorsTags["Reset"], colorsTags["Bright"], colorsTags["FgMagenta"], message, colorsTags["Reset"], colorsTags["Reset"], colorsTags["Reset"])
|
|
if l.sentryEnabled {
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel(sentry.LevelFatal)
|
|
})
|
|
sentry.CaptureMessage(message)
|
|
}
|
|
}
|
|
|
|
func (l *Logger) Error(message string) {
|
|
fmt.Printf("%sERROR%s: %s%s%s\n", colorsTags["BgRed"], colorsTags["Reset"], colorsTags["FgRed"], message, colorsTags["Reset"])
|
|
if l.sentryEnabled {
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel(sentry.LevelError)
|
|
})
|
|
sentry.CaptureMessage(message)
|
|
}
|
|
}
|
|
|
|
func (l *Logger) Critical(message string) {
|
|
fmt.Printf("%sCRITICAL%s: %s%s%s%s%s\n", colorsTags["Blink"]+colorsTags["BgRed"], colorsTags["Reset"], colorsTags["FgMagenta"], message, colorsTags["Reset"], colorsTags["Reset"], colorsTags["Reset"])
|
|
if l.sentryEnabled {
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel("critical")
|
|
})
|
|
sentry.CaptureMessage(message)
|
|
}
|
|
}
|
|
|
|
func (l *Logger) Warning(message string) {
|
|
fmt.Printf("%sWARN%s: %s%s\n", colorsTags["BgYellow"]+colorsTags["FgBlack"], colorsTags["Reset"], message, colorsTags["Reset"])
|
|
if l.sentryEnabled {
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel(sentry.LevelWarning)
|
|
})
|
|
sentry.CaptureMessage(message)
|
|
}
|
|
}
|
|
|
|
func (l *Logger) Log(message string) {
|
|
fmt.Println(message)
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel("log")
|
|
})
|
|
sentry.CaptureMessage(message)
|
|
}
|