Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
78
logger/event_logger.go
Normal file
78
logger/event_logger.go
Normal file
|
@ -0,0 +1,78 @@
|
|||
//go:build windows
|
||||
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"golang.org/x/sys/windows/svc/eventlog"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
)
|
||||
|
||||
const (
|
||||
eidInfo = 1
|
||||
eidWarning = 2
|
||||
eidError = 3
|
||||
)
|
||||
|
||||
type eventLogger struct {
|
||||
eventlog *eventlog.Log
|
||||
errlog *log.Logger
|
||||
}
|
||||
|
||||
func (l *eventLogger) Close() error {
|
||||
if l.eventlog == nil {
|
||||
return nil
|
||||
}
|
||||
if err := l.eventlog.Close(); err != nil {
|
||||
return err
|
||||
}
|
||||
l.eventlog = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *eventLogger) Print(level telegraf.LogLevel, _ time.Time, prefix string, _ map[string]interface{}, args ...interface{}) {
|
||||
// Skip debug and beyond as they cannot be logged
|
||||
if level >= telegraf.Debug {
|
||||
return
|
||||
}
|
||||
|
||||
msg := prefix + fmt.Sprint(args...)
|
||||
|
||||
var err error
|
||||
switch level {
|
||||
case telegraf.Error:
|
||||
err = l.eventlog.Error(eidError, msg)
|
||||
case telegraf.Warn:
|
||||
err = l.eventlog.Warning(eidWarning, msg)
|
||||
case telegraf.Info:
|
||||
err = l.eventlog.Info(eidInfo, msg)
|
||||
}
|
||||
if err != nil {
|
||||
l.errlog.Printf("E! Writing log message failed: %v", err)
|
||||
}
|
||||
|
||||
// TODO attributes...
|
||||
}
|
||||
|
||||
func createEventLogger(cfg *Config) (sink, error) {
|
||||
eventLog, err := eventlog.Open(cfg.InstanceName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
l := &eventLogger{
|
||||
eventlog: eventLog,
|
||||
errlog: log.New(os.Stderr, "", 0),
|
||||
}
|
||||
|
||||
return l, nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
add("eventlog", createEventLogger)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue