LocalhostBunny/init.go

55 lines
1.3 KiB
Go

package bunny
import (
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"gogs.mikescher.com/BlackForestBytes/goext/exerr"
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"os"
)
func Init(cfg Config) {
exerr.Init(exerr.ErrorPackageConfigInit{
ZeroLogErrTraces: langext.PTrue,
ZeroLogAllTraces: langext.PTrue,
RecursiveErrors: langext.PTrue,
ExtendedGinOutput: &cfg.ReturnRawErrors,
IncludeMetaInGinOutput: &cfg.ReturnRawErrors,
ExtendGinOutput: func(err *exerr.ExErr, json map[string]any) {
if fapiMsg := err.RecursiveMeta("fapiMessage"); fapiMsg != nil {
json["fapiMessage"] = fapiMsg.ValueString()
}
},
ExtendGinDataOutput: func(err *exerr.ExErr, depth int, json map[string]any) {
if fapiMsg, ok := err.Meta["fapiMessage"]; ok {
json["fapiMessage"] = fapiMsg.ValueString()
}
},
})
cw := zerolog.ConsoleWriter{
Out: os.Stdout,
TimeFormat: "2006-01-02 15:04:05 Z07:00",
}
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
multi := zerolog.MultiLevelWriter(cw)
logger := zerolog.New(multi).With().
Timestamp().
Caller().
Logger()
log.Logger = logger
if cfg.GinDebug {
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
}
zerolog.SetGlobalLevel(cfg.LogLevel)
log.Debug().Msg("Initialized")
}