go.dedis.ch/onet/v4@v4.0.0-pre1/log/syslog.go (about) 1 // +build freebsd linux darwin 2 3 package log 4 5 import ( 6 "log/syslog" 7 8 "golang.org/x/xerrors" 9 ) 10 11 type syslogLogger struct { 12 lInfo *LoggerInfo 13 writer *syslog.Writer 14 } 15 16 func (sl *syslogLogger) Log(level int, msg string) { 17 _, err := sl.writer.Write([]byte(msg)) 18 if err != nil { 19 panic(err) 20 } 21 } 22 23 func (sl *syslogLogger) Close() { 24 sl.writer.Close() 25 } 26 27 func (sl *syslogLogger) GetLoggerInfo() *LoggerInfo { 28 return sl.lInfo 29 } 30 31 // NewSyslogLogger creates a logger that writes into syslog with 32 // the given priority and tag, and is using the given LoggerInfo (without the 33 // Logger). 34 // It returns the logger. 35 func NewSyslogLogger(lInfo *LoggerInfo, priority syslog.Priority, tag string) (Logger, error) { 36 writer, err := syslog.New(priority, tag) 37 if err != nil { 38 return nil, xerrors.Errorf("system log: %v", err) 39 } 40 return &syslogLogger{ 41 lInfo: lInfo, 42 writer: writer, 43 }, nil 44 }