func createLog()

in pkg/output/winlog/winlog_windows.go [125:145]


func createLog(name, source, messageFile string) (*eventlog.Log, error) {
	existed, err := eventlog.Install(name, source, messageFile, true, eventlog.Error|eventlog.Warning|eventlog.Info)
	if err != nil {
		return nil, err
	}

	if existed {
		wineventlog.EvtClearLog(wineventlog.NilHandle, name, "")
	}

	log, err := eventlog.Open(source)
	if err != nil {
		return nil, multierr.Combine(
			err,
			eventlog.RemoveSource(name, source),
			eventlog.RemoveProvider(name),
		)
	}

	return log, nil
}