Files
kgpz_web/helpers/logging/logging.go
2024-12-21 11:15:03 +01:00

91 lines
1.2 KiB
Go

package logging
// BUG: loggings happens without manual flush, so the messagees come from all threads at the same time.
import (
"fmt"
"log/slog"
)
func ObjDebug[T fmt.Stringer](object *T, msg string) {
if msg != "" {
slog.Debug(msg)
}
if object != nil {
obj := *object
slog.Debug(obj.String())
}
}
func ObjErr[T fmt.Stringer](object *T, err error, msg ...string) {
if err == nil {
return
}
if len(msg) > 0 {
for _, m := range msg {
slog.Error(m)
}
}
if object != nil {
obj := *object
slog.Debug(obj.String())
}
slog.Error(err.Error())
}
func Error(err error, msg ...string) {
if err == nil {
return
}
if len(msg) > 0 {
for _, m := range msg {
slog.Error(m)
}
}
slog.Error(err.Error())
}
func ErrorDebug(err error, msg ...string) {
if err == nil {
return
}
if len(msg) > 0 {
for _, m := range msg {
slog.Debug(m)
}
}
slog.Debug(err.Error())
}
func Info(msg ...string) {
if len(msg) > 0 {
for _, m := range msg {
slog.Info(m)
}
}
}
func Debug(msg ...string) {
if len(msg) > 0 {
for _, m := range msg {
slog.Debug(m)
}
}
}
func SetDebug() {
slog.SetLogLoggerLevel(slog.LevelDebug)
}
func SetInfo() {
slog.SetLogLoggerLevel(slog.LevelInfo)
}