logger: add NewStdLogger and RedirectStdLogger
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user