logger: add NewStdLogger and RedirectStdLogger

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2021-08-06 13:45:11 +03:00
parent 1d16983b67
commit 778dd449e2
2 changed files with 44 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package logger
import (
"bytes"
"log"
)
@@ -14,6 +15,21 @@ func NewStdLogger(l Logger, level Level) *log.Logger {
}
func (sl *stdLogger) Write(p []byte) (int, error) {
p = bytes.TrimSpace(p)
sl.l.Log(sl.l.Options().Context, sl.level, string(p))
return len(p), nil
}
func RedirectStdLogger(l Logger, level Level) func() {
flags := log.Flags()
prefix := log.Prefix()
writer := log.Writer()
log.SetFlags(0)
log.SetPrefix("")
log.SetOutput(&stdLogger{l: l, level: level})
return func() {
log.SetFlags(flags)
log.SetPrefix(prefix)
log.SetOutput(writer)
}
}