in pkg/output/winlog/winlog_windows.go [79:101]
func (o *Output) Write(b []byte) (n int, err error) {
if o.log == nil {
return 0, errors.New("the output is closed and unusable")
}
var etype uint16
var eid uint32
var messages []string
switch o.Templated {
case true:
tpl := &EventTemplate{}
if err := json.Unmarshal(b, tpl); err != nil {
return 0, err
}
etype = tpl.EventType
eid = tpl.EventID
messages = tpl.Messages
case false:
etype = eventlog.Info
eid = uint32(rand.Int63() % 1000)
messages = []string{string(b)}
}
return len(b), safeWriteEvent(o.log, etype, eid, messages)
}