removes syslog from windows builds

This commit is contained in:
Bruno Carlin 2016-10-28 18:34:07 +02:00
parent e6b3497b2b
commit 1abe033b39
2 changed files with 100 additions and 94 deletions

View file

@ -4,9 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"log/syslog"
"os" "os"
"strings"
) )
type Backend interface { type Backend interface {
@ -100,98 +98,6 @@ func (b *FileBackend) Reopen() error {
return nil return nil
} }
//
// Syslog Backend
//
type SyslogBackend struct {
w *syslog.Writer
formatter *Formatter
level Level
}
func NewSyslogBackend(facilityName string, tag string) (Backend, error) {
f, err := facility(facilityName)
if err != nil {
return nil, err
}
w, err := syslog.New(f, tag)
if err != nil {
return nil, err
}
sb := &SyslogBackend{
w: w,
formatter: &basicFormatter,
}
return sb, nil
}
func (sb *SyslogBackend) Write(r *Record) (err error) {
text := (*sb.formatter)(r)
switch r.Level {
case DEBUG:
err = sb.w.Debug(text)
case INFO:
err = sb.w.Info(text)
case WARNING:
err = sb.w.Warning(text)
case ERROR:
err = sb.w.Err(text)
case CRITICAL:
err = sb.w.Crit(text)
case FATAL:
err = sb.w.Emerg(text)
}
return err
}
func (sb *SyslogBackend) SetFormatter(f *Formatter) {
sb.formatter = f
}
func (sb *SyslogBackend) SetLevel(level Level) {
sb.level = level
}
func (sb *SyslogBackend) Level() Level {
return sb.level
}
func (sb *SyslogBackend) Reopen() error {
return nil
}
var facilities = map[string]syslog.Priority{
"kern": syslog.LOG_KERN,
"user": syslog.LOG_USER,
"mail": syslog.LOG_MAIL,
"daemon": syslog.LOG_DAEMON,
"auth": syslog.LOG_AUTH,
"syslog": syslog.LOG_SYSLOG,
"lpr": syslog.LOG_LPR,
"news": syslog.LOG_NEWS,
"uucp": syslog.LOG_UUCP,
"cron": syslog.LOG_CRON,
"authpriv": syslog.LOG_AUTHPRIV,
"ftp": syslog.LOG_FTP,
"local0": syslog.LOG_LOCAL0,
"local1": syslog.LOG_LOCAL1,
"local2": syslog.LOG_LOCAL2,
"local3": syslog.LOG_LOCAL3,
"local4": syslog.LOG_LOCAL4,
"local5": syslog.LOG_LOCAL5,
"local6": syslog.LOG_LOCAL6,
"local7": syslog.LOG_LOCAL7,
}
func facility(name string) (syslog.Priority, error) {
if p, ok := facilities[strings.ToLower(name)]; !ok {
return 0, fmt.Errorf("Facility '%s' does not exist", name)
} else {
return p, nil
}
}
// //
// Noop Backend // Noop Backend
// //

100
backend_syslog_linux.go Normal file
View file

@ -0,0 +1,100 @@
// +build !windows,!nacl,!plan9
package logging
import (
"fmt"
"log/syslog"
"strings"
)
//
// Syslog Backend
//
type SyslogBackend struct {
w *syslog.Writer
formatter *Formatter
level Level
}
func NewSyslogBackend(facilityName string, tag string) (Backend, error) {
f, err := facility(facilityName)
if err != nil {
return nil, err
}
w, err := syslog.New(f, tag)
if err != nil {
return nil, err
}
sb := &SyslogBackend{
w: w,
formatter: &basicFormatter,
}
return sb, nil
}
func (sb *SyslogBackend) Write(r *Record) (err error) {
text := (*sb.formatter)(r)
switch r.Level {
case DEBUG:
err = sb.w.Debug(text)
case INFO:
err = sb.w.Info(text)
case WARNING:
err = sb.w.Warning(text)
case ERROR:
err = sb.w.Err(text)
case CRITICAL:
err = sb.w.Crit(text)
case FATAL:
err = sb.w.Emerg(text)
}
return err
}
func (sb *SyslogBackend) SetFormatter(f *Formatter) {
sb.formatter = f
}
func (sb *SyslogBackend) SetLevel(level Level) {
sb.level = level
}
func (sb *SyslogBackend) Level() Level {
return sb.level
}
func (sb *SyslogBackend) Reopen() error {
return nil
}
var facilities = map[string]syslog.Priority{
"kern": syslog.LOG_KERN,
"user": syslog.LOG_USER,
"mail": syslog.LOG_MAIL,
"daemon": syslog.LOG_DAEMON,
"auth": syslog.LOG_AUTH,
"syslog": syslog.LOG_SYSLOG,
"lpr": syslog.LOG_LPR,
"news": syslog.LOG_NEWS,
"uucp": syslog.LOG_UUCP,
"cron": syslog.LOG_CRON,
"authpriv": syslog.LOG_AUTHPRIV,
"ftp": syslog.LOG_FTP,
"local0": syslog.LOG_LOCAL0,
"local1": syslog.LOG_LOCAL1,
"local2": syslog.LOG_LOCAL2,
"local3": syslog.LOG_LOCAL3,
"local4": syslog.LOG_LOCAL4,
"local5": syslog.LOG_LOCAL5,
"local6": syslog.LOG_LOCAL6,
"local7": syslog.LOG_LOCAL7,
}
func facility(name string) (syslog.Priority, error) {
if p, ok := facilities[strings.ToLower(name)]; !ok {
return 0, fmt.Errorf("Facility '%s' does not exist", name)
} else {
return p, nil
}
}