...
1 package slog
2
3 import (
4 "context"
5 "log"
6 "strings"
7 )
8
9
10
11
12
13
14
15
16
17
18 func Stdlib(ctx context.Context, l Logger, level Level) *log.Logger {
19 l.skip += 2
20
21 l = l.Named("stdlib")
22
23 w := &stdlogWriter{
24 ctx: ctx,
25 l: l,
26 level: level,
27 }
28
29 return log.New(w, "", 0)
30 }
31
32 type stdlogWriter struct {
33 ctx context.Context
34 l Logger
35 level Level
36 }
37
38 func (w stdlogWriter) Write(p []byte) (n int, err error) {
39 msg := string(p)
40
41
42 msg = strings.TrimSuffix(msg, "\n")
43
44 w.l.log(w.ctx, w.level, msg, Map{})
45
46 return len(p), nil
47 }
48
View as plain text