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  }