2025-04-15 17:16:04 -03:00
|
|
|
package logs
|
2021-08-04 11:26:22 +12:00
|
|
|
|
|
|
|
import (
|
2022-10-20 11:33:54 -03:00
|
|
|
"fmt"
|
2022-09-19 15:39:43 -03:00
|
|
|
stdlog "log"
|
2022-10-20 11:33:54 -03:00
|
|
|
"os"
|
2022-09-19 15:39:43 -03:00
|
|
|
|
2022-09-16 13:18:44 -03:00
|
|
|
"github.com/rs/zerolog"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
|
|
"github.com/rs/zerolog/pkgerrors"
|
2021-08-04 11:26:22 +12:00
|
|
|
)
|
|
|
|
|
2025-04-15 17:16:04 -03:00
|
|
|
func ConfigureLogger() {
|
2022-09-16 13:18:44 -03:00
|
|
|
zerolog.ErrorStackFieldName = "stack_trace"
|
|
|
|
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
|
|
|
|
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
|
2022-01-17 16:40:02 +13:00
|
|
|
|
2022-09-19 15:39:43 -03:00
|
|
|
stdlog.SetFlags(0)
|
|
|
|
stdlog.SetOutput(log.Logger)
|
|
|
|
|
2022-09-16 13:18:44 -03:00
|
|
|
log.Logger = log.Logger.With().Caller().Stack().Logger()
|
|
|
|
}
|
2021-08-04 11:26:22 +12:00
|
|
|
|
2025-04-15 17:16:04 -03:00
|
|
|
func SetLoggingLevel(level string) {
|
2022-09-16 13:18:44 -03:00
|
|
|
switch level {
|
|
|
|
case "ERROR":
|
|
|
|
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
|
|
|
|
case "WARN":
|
|
|
|
zerolog.SetGlobalLevel(zerolog.WarnLevel)
|
|
|
|
case "INFO":
|
|
|
|
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
|
|
|
case "DEBUG":
|
|
|
|
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
|
|
|
}
|
2021-08-04 11:26:22 +12:00
|
|
|
}
|
2022-10-20 11:33:54 -03:00
|
|
|
|
2025-04-15 17:16:04 -03:00
|
|
|
func SetLoggingMode(mode string) {
|
2022-10-20 11:33:54 -03:00
|
|
|
switch mode {
|
|
|
|
case "PRETTY":
|
|
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{
|
|
|
|
Out: os.Stderr,
|
|
|
|
TimeFormat: "2006/01/02 03:04PM",
|
2023-08-24 18:40:52 -03:00
|
|
|
FormatMessage: formatMessage,
|
|
|
|
})
|
2024-02-14 07:55:00 +13:00
|
|
|
case "NOCOLOR":
|
|
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{
|
|
|
|
Out: os.Stderr,
|
|
|
|
TimeFormat: "2006/01/02 03:04PM",
|
|
|
|
FormatMessage: formatMessage,
|
|
|
|
NoColor: true,
|
|
|
|
})
|
2022-10-20 11:33:54 -03:00
|
|
|
case "JSON":
|
|
|
|
log.Logger = log.Output(os.Stderr)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-06-28 14:59:28 -03:00
|
|
|
func formatMessage(i any) string {
|
2022-10-20 11:33:54 -03:00
|
|
|
if i == nil {
|
|
|
|
return ""
|
|
|
|
}
|
2023-08-24 18:40:52 -03:00
|
|
|
|
2022-10-20 11:33:54 -03:00
|
|
|
return fmt.Sprintf("%s |", i)
|
|
|
|
}
|