github.com/jaegerpicker/docker@v0.7.7-0.20150325003727-22dba32b4dab/daemon/logger/syslog/syslog.go (about) 1 package syslog 2 3 import ( 4 "fmt" 5 "log/syslog" 6 "os" 7 "path" 8 9 "github.com/docker/docker/daemon/logger" 10 ) 11 12 type Syslog struct { 13 writer *syslog.Writer 14 tag string 15 } 16 17 func New(tag string) (logger.Logger, error) { 18 log, err := syslog.New(syslog.LOG_USER, path.Base(os.Args[0])) 19 if err != nil { 20 return nil, err 21 } 22 return &Syslog{ 23 writer: log, 24 tag: tag, 25 }, nil 26 } 27 28 func (s *Syslog) Log(msg *logger.Message) error { 29 logMessage := fmt.Sprintf("%s: %s", s.tag, msg.Line) 30 if msg.Source == "stderr" { 31 return s.writer.Err(logMessage) 32 } 33 return s.writer.Info(logMessage) 34 } 35 36 func (s *Syslog) Close() error { 37 return s.writer.Close() 38 } 39 40 func (s *Syslog) Name() string { 41 return "Syslog" 42 }