github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/worker/logforwarder/sinks/syslog.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package sinks 5 6 import ( 7 "github.com/juju/errors" 8 9 "github.com/juju/juju/logfwd" 10 "github.com/juju/juju/logfwd/syslog" 11 "github.com/juju/juju/worker/logforwarder" 12 ) 13 14 // OpenSyslog returns a sink used to receive log messages to be forwarded. 15 func OpenSyslog(cfg *syslog.RawConfig) (*logforwarder.LogSink, error) { 16 if !cfg.Enabled { 17 return nil, errors.New("log forwarding not enabled") 18 } 19 client, err := syslog.Open(*cfg) 20 if err != nil { 21 return nil, errors.Trace(err) 22 } 23 if client == nil { 24 // TODO(axw) we should be returning an error 25 // which we interpret up the stack. 26 return &logforwarder.LogSink{ 27 SendCloser: emptySendCloser{}, 28 }, nil 29 } 30 sink := &logforwarder.LogSink{ 31 SendCloser: client, 32 } 33 return sink, nil 34 } 35 36 type emptySendCloser struct{} 37 38 func (emptySendCloser) Send([]logfwd.Record) error { 39 return nil 40 } 41 42 func (emptySendCloser) Close() error { 43 return nil 44 }