2015-03-09 11:40:57 -07:00
|
|
|
package syslog
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"log/syslog"
|
|
|
|
"os"
|
|
|
|
"path"
|
|
|
|
|
|
|
|
"github.com/docker/docker/daemon/logger"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Syslog struct {
|
|
|
|
writer *syslog.Writer
|
|
|
|
tag string
|
|
|
|
}
|
|
|
|
|
|
|
|
func New(tag string) (logger.Logger, error) {
|
|
|
|
log, err := syslog.New(syslog.LOG_USER, path.Base(os.Args[0]))
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &Syslog{
|
|
|
|
writer: log,
|
|
|
|
tag: tag,
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Syslog) Log(msg *logger.Message) error {
|
2015-03-24 01:32:33 +03:00
|
|
|
logMessage := fmt.Sprintf("%s: %s", s.tag, msg.Line)
|
2015-03-09 11:40:57 -07:00
|
|
|
if msg.Source == "stderr" {
|
2015-03-23 19:59:30 +01:00
|
|
|
return s.writer.Err(logMessage)
|
2015-03-09 11:40:57 -07:00
|
|
|
}
|
2015-03-23 19:59:30 +01:00
|
|
|
return s.writer.Info(logMessage)
|
2015-03-09 11:40:57 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Syslog) Close() error {
|
2015-03-23 20:03:24 +01:00
|
|
|
return s.writer.Close()
|
2015-03-09 11:40:57 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Syslog) Name() string {
|
|
|
|
return "Syslog"
|
|
|
|
}
|