You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Logkit/syslog.go

57 lines
1.1 KiB

package logkit
import (
"log/syslog"
)
type SyslogWriter struct {
network string
raddr string
priority syslog.Priority
tag string
writer *syslog.Writer
}
func NewSyslogWriter(network, raddr string, level Level, tag string) (Writer, error) {
var priority syslog.Priority
switch level {
case LevelDebug:
priority = syslog.LOG_DEBUG
break
case LevelInfo:
priority = syslog.LOG_INFO
break
case LevelWarn:
priority = syslog.LOG_WARNING
break
case LevelError:
priority = syslog.LOG_ERR
break
case LevelFatal:
priority = syslog.LOG_ALERT
break
default:
priority = syslog.LOG_INFO
}
writer, err := syslog.Dial(network, raddr, priority, tag)
if err != nil {
return nil, err
}
object := &SyslogWriter{
network: network,
raddr: raddr,
priority: priority,
tag: tag,
writer: writer,
}
return object, nil
}
func (self *SyslogWriter) Write(msg []byte) (int, error) {
return self.writer.Write([]byte(msg))
}
func (self *SyslogWriter) Close() error {
// ignore the error return code
return self.writer.Close()
}