github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/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 } 15 16 func New(tag string) (logger.Logger, error) { 17 log, err := syslog.New(syslog.LOG_DAEMON, fmt.Sprintf("%s/%s", path.Base(os.Args[0]), tag)) 18 if err != nil { 19 return nil, err 20 } 21 return &Syslog{ 22 writer: log, 23 }, nil 24 } 25 26 func (s *Syslog) Log(msg *logger.Message) error { 27 if msg.Source == "stderr" { 28 return s.writer.Err(string(msg.Line)) 29 } 30 return s.writer.Info(string(msg.Line)) 31 } 32 33 func (s *Syslog) Close() error { 34 return s.writer.Close() 35 } 36 37 func (s *Syslog) Name() string { 38 return "Syslog" 39 }