BREAKING CHANGE: Update ConfigureLogging

Now takes a writer as additional output next to stderr
to write logs to
This commit is contained in:
Melody Becker 2025-04-08 17:09:50 +02:00
parent 0eafc6806b
commit cabd62045f
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI

View file

@ -8,8 +8,6 @@ import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"git.mstar.dev/mstar/goutils/logrotate"
)
var cliFlagLogLevel = "info"
@ -30,13 +28,12 @@ func SetupFlags() {
)
}
// If logfileName != nil, that file will be used for writing logs to.
// Additionally, this function will then return another function
// for rotating the log file
func ConfigureLogging(logfileName *string) func() error {
rotateFunc := configOutputs(logfileName)
// Configure logging. Utilises the flags setup in [SetupFlags].
// If logWriter is not nil, will also write logs, as json objects,
// to the given writer
func ConfigureLogging(logWriter io.Writer) {
configOutputs(logWriter)
configLevel()
return rotateFunc
}
func configLevel() {
@ -59,20 +56,14 @@ func configLevel() {
log.Info().Str("new-level", cliFlagLogLevel).Msg("New logging level set")
}
func configOutputs(logfileName *string) (rotateLogs func() error) {
rotateLogs = func() error { return nil }
extraLogWriters := []io.Writer{}
if logfileName != nil {
logfile, err := logrotate.New(*logfileName)
if err != nil {
log.Fatal().Err(err).Msg("Failed to open log file")
}
extraLogWriters = append(extraLogWriters, logfile)
rotateLogs = logfile.Rotate
func configOutputs(logWriter io.Writer) {
console := zerolog.ConsoleWriter{Out: os.Stderr}
extraLogWriters := []io.Writer{console}
if logWriter != nil {
extraLogWriters = append(extraLogWriters, logWriter)
}
if !cliFlagLogJson {
console := zerolog.ConsoleWriter{Out: os.Stderr}
log.Logger = zerolog.New(zerolog.MultiLevelWriter(append([]io.Writer{console}, extraLogWriters...)...)).
log.Logger = zerolog.New(zerolog.MultiLevelWriter(extraLogWriters...)).
With().
Timestamp().
Logger()