removes syslog from windows builds
This commit is contained in:
parent
e6b3497b2b
commit
1abe033b39
2 changed files with 100 additions and 94 deletions
94
backend.go
94
backend.go
|
@ -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
100
backend_syslog_linux.go
Normal 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
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue