55 lines
1.3 KiB
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")
|
|
}
|