server/logger/logger.go

45 lines
965 B
Go

/**
* file: logger.go
* author: theo technicguy
* license: apache-2.0
*
* This is the logger package, providing global logging
* facilities to hoffman-server.
*/
// The logger package provides logging facilites to the
// entire hoffman-server project.
package logger
import (
"os"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
var (
logger zerolog.Logger = log.Logger.With().Str("service", "logger").Logger()
setupDone bool = false
)
func Setup() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnixMs
log.Logger = zerolog.New(zerolog.ConsoleWriter{Out: os.Stderr}).With().Timestamp().Logger()
logger.Debug().Msg("setup logger")
setupDone = true
}
func GetLogger(service string) zerolog.Logger {
if !setupDone {
Setup()
}
logger.Debug().Str("new-service", service).Msg("generating logger")
return log.With().Str("service", service).Logger()
}
func SetLogLevel(level zerolog.Level) {
zerolog.SetGlobalLevel(level)
}