Skip to content

Commit

Permalink
Add log level change based on signals
Browse files Browse the repository at this point in the history
Signed-off-by: Arpad Kiss <arpad.a.kiss@est.tech>
  • Loading branch information
arp-est committed Sep 30, 2024
1 parent b66e1bf commit 9b949b4
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions pkg/tools/log/logruslogger/levelchange.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package logruslogger

import (
"context"
"os"
"os/signal"

"github.com/sirupsen/logrus"

"github.com/networkservicemesh/sdk/pkg/tools/log"
)

func SetupLevelChangeOnSignal(ctx context.Context, signals map[os.Signal]logrus.Level) {
sigChannel := make(chan os.Signal, len(signals))
for sig := range signals {
signal.Notify(sigChannel, sig)
}
go func() {
for {
select {
case <-ctx.Done():
signal.Stop(sigChannel)
close(sigChannel)
return
case sig := <-sigChannel:
lvl := signals[sig]
log.FromContext(ctx).Infof("Setting log level to '%+v'", lvl.String())
logrus.SetLevel(lvl)
}
}
}()
}

0 comments on commit 9b949b4

Please sign in to comment.