|
14 | 14 |
|
15 | 15 | package medialogutils
|
16 | 16 |
|
17 |
| -import ( |
18 |
| - "fmt" |
19 |
| - "strings" |
20 |
| - |
21 |
| - "github.com/livekit/protocol/logger" |
22 |
| -) |
23 |
| - |
24 | 17 | // CmdLogger logs cmd outputs
|
25 | 18 | type CmdLogger struct {
|
26 |
| - name string |
| 19 | + handler func(string) |
27 | 20 | }
|
28 | 21 |
|
29 |
| -func NewCmdLogger(name string) *CmdLogger { |
| 22 | +func NewCmdLogger(handler func(string)) *CmdLogger { |
30 | 23 | return &CmdLogger{
|
31 |
| - name: name, |
| 24 | + handler: handler, |
32 | 25 | }
|
33 | 26 | }
|
34 | 27 |
|
35 | 28 | func (l *CmdLogger) Write(p []byte) (int, error) {
|
36 |
| - logger.Infow(fmt.Sprintf("%s: %s", l.name, string(p))) |
37 |
| - return len(p), nil |
38 |
| -} |
39 |
| - |
40 |
| -// HandlerLogger catches stray outputs from egress handlers |
41 |
| -type HandlerLogger struct { |
42 |
| - logger logger.Logger |
43 |
| -} |
44 |
| - |
45 |
| -func NewHandlerLogger(keyAndValues ...any) *HandlerLogger { |
46 |
| - return &HandlerLogger{ |
47 |
| - logger: logger.GetLogger().WithValues(keyAndValues...), |
48 |
| - } |
49 |
| -} |
50 |
| - |
51 |
| -var downgrade = map[string]bool{ |
52 |
| - "turnc ": true, |
53 |
| - "ice ER": true, |
54 |
| - "SDK 20": true, |
55 |
| -} |
56 |
| - |
57 |
| -func (l *HandlerLogger) Write(p []byte) (n int, err error) { |
58 |
| - s := strings.Split(strings.TrimSuffix(string(p), "\n"), "\n") |
59 |
| - for _, line := range s { |
60 |
| - switch { |
61 |
| - case strings.HasSuffix(line, "}"): |
62 |
| - // (probably) normal log |
63 |
| - fmt.Println(line) |
64 |
| - case strings.HasPrefix(line, "0:00:"): |
65 |
| - // ignore cuda and template not mapped gstreamer warnings |
66 |
| - continue |
67 |
| - case len(line) > 6 && downgrade[line[:6]]: |
68 |
| - // downgrade turn, ice, and sdk errors |
69 |
| - l.logger.Infow(line) |
70 |
| - default: |
71 |
| - // panics and unexpected errors |
72 |
| - l.logger.Errorw(line, nil) |
73 |
| - } |
74 |
| - } |
75 |
| - |
| 29 | + l.handler(string(p)) |
76 | 30 | return len(p), nil
|
77 | 31 | }
|
0 commit comments