...
1
2
3 package etwlogrus
4
5 import (
6 "github.com/sirupsen/logrus"
7
8 "github.com/Microsoft/go-winio/pkg/etw"
9 )
10
11
12
13
14
15 func WithNewETWProvider(n string) HookOpt {
16 return func(h *Hook) error {
17 provider, err := etw.NewProvider(n, nil)
18 if err != nil {
19 return err
20 }
21
22 h.provider = provider
23 h.closeProvider = true
24 return nil
25 }
26 }
27
28
29
30 func WithExistingETWProvider(p *etw.Provider) HookOpt {
31 return func(h *Hook) error {
32 h.provider = p
33 h.closeProvider = false
34 return nil
35 }
36 }
37
38
39
40 func WithGetName(f func(*logrus.Entry) string) HookOpt {
41 return func(h *Hook) error {
42 h.getName = f
43 return nil
44 }
45 }
46
47
48 func WithEventOpts(f func(*logrus.Entry) []etw.EventOpt) HookOpt {
49 return func(h *Hook) error {
50 h.getEventsOpts = f
51 return nil
52 }
53 }
54
View as plain text