BREAKING CHANGE: Update ConfigureLogging
Now takes a writer as additional output next to stderr to write logs to
This commit is contained in:
parent
0eafc6806b
commit
0a22727d46
1 changed files with 11 additions and 20 deletions
|
@ -8,8 +8,6 @@ import (
|
||||||
|
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
|
|
||||||
"git.mstar.dev/mstar/goutils/logrotate"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var cliFlagLogLevel = "info"
|
var cliFlagLogLevel = "info"
|
||||||
|
@ -30,13 +28,12 @@ func SetupFlags() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// If logfileName != nil, that file will be used for writing logs to.
|
// Configure logging. Utilises the flags setup in [SetupFlags].
|
||||||
// Additionally, this function will then return another function
|
// If logWriter is not nil, will also write logs, as json objects,
|
||||||
// for rotating the log file
|
// to the given writer
|
||||||
func ConfigureLogging(logfileName *string) func() error {
|
func ConfigureLogging(logWriter io.Writer) {
|
||||||
rotateFunc := configOutputs(logfileName)
|
configOutputs(logWriter)
|
||||||
configLevel()
|
configLevel()
|
||||||
return rotateFunc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func configLevel() {
|
func configLevel() {
|
||||||
|
@ -59,20 +56,14 @@ func configLevel() {
|
||||||
log.Info().Str("new-level", cliFlagLogLevel).Msg("New logging level set")
|
log.Info().Str("new-level", cliFlagLogLevel).Msg("New logging level set")
|
||||||
}
|
}
|
||||||
|
|
||||||
func configOutputs(logfileName *string) (rotateLogs func() error) {
|
func configOutputs(logWriter io.Writer) {
|
||||||
rotateLogs = func() error { return nil }
|
console := zerolog.ConsoleWriter{Out: os.Stderr}
|
||||||
extraLogWriters := []io.Writer{}
|
extraLogWriters := []io.Writer{console}
|
||||||
if logfileName != nil {
|
if logWriter != nil {
|
||||||
logfile, err := logrotate.New(*logfileName)
|
extraLogWriters = append(extraLogWriters, logWriter)
|
||||||
if err != nil {
|
|
||||||
log.Fatal().Err(err).Msg("Failed to open log file")
|
|
||||||
}
|
|
||||||
extraLogWriters = append(extraLogWriters, logfile)
|
|
||||||
rotateLogs = logfile.Rotate
|
|
||||||
}
|
}
|
||||||
if !cliFlagLogJson {
|
if !cliFlagLogJson {
|
||||||
console := zerolog.ConsoleWriter{Out: os.Stderr}
|
log.Logger = zerolog.New(zerolog.MultiLevelWriter(extraLogWriters...)).
|
||||||
log.Logger = zerolog.New(zerolog.MultiLevelWriter(append([]io.Writer{console}, extraLogWriters...)...)).
|
|
||||||
With().
|
With().
|
||||||
Timestamp().
|
Timestamp().
|
||||||
Logger()
|
Logger()
|
||||||
|
|
Loading…
Reference in a new issue