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
cabd62045f
1 changed files with 11 additions and 20 deletions
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue