45 lines
965 B
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)
|
|
}
|