mirror of https://gogs.blitter.com/RLabs/xs
157 lines
2.4 KiB
Go
157 lines
2.4 KiB
Go
// +build linux
|
|
|
|
// Package logger is a wrapper around UNIX syslog, so that it also may
|
|
// be wrapped with something else for Windows (Sadly, the stdlib log/syslog
|
|
// is frozen, and there is no Windows implementation.)
|
|
package logger
|
|
|
|
import (
|
|
sl "log/syslog"
|
|
)
|
|
|
|
// Priority is the logger priority
|
|
type Priority = sl.Priority
|
|
|
|
// Writer is a syslog Writer
|
|
type Writer = sl.Writer
|
|
|
|
// nolint: golint
|
|
const (
|
|
// Severity.
|
|
|
|
// From /usr/include/sys/syslog.h.
|
|
// These are the same on Linux, BSD, and OS X.
|
|
LOG_EMERG Priority = iota
|
|
LOG_ALERT
|
|
LOG_CRIT
|
|
LOG_ERR
|
|
LOG_WARNING
|
|
LOG_NOTICE
|
|
LOG_INFO
|
|
LOG_DEBUG
|
|
)
|
|
|
|
// nolint: golint
|
|
const (
|
|
// Facility.
|
|
|
|
// From /usr/include/sys/syslog.h.
|
|
// These are the same up to LOG_FTP on Linux, BSD, and OS X.
|
|
LOG_KERN Priority = iota << 3
|
|
LOG_USER
|
|
LOG_MAIL
|
|
LOG_DAEMON
|
|
LOG_AUTH
|
|
LOG_SYSLOG
|
|
LOG_LPR
|
|
LOG_NEWS
|
|
LOG_UUCP
|
|
LOG_CRON
|
|
LOG_AUTHPRIV
|
|
LOG_FTP
|
|
_ // unused
|
|
_ // unused
|
|
_ // unused
|
|
_ // unused
|
|
LOG_LOCAL0
|
|
LOG_LOCAL1
|
|
LOG_LOCAL2
|
|
LOG_LOCAL3
|
|
LOG_LOCAL4
|
|
LOG_LOCAL5
|
|
LOG_LOCAL6
|
|
LOG_LOCAL7
|
|
)
|
|
|
|
var (
|
|
l *sl.Writer
|
|
)
|
|
|
|
// New returns a new log Writer.
|
|
func New(flags Priority, tag string) (w *Writer, e error) {
|
|
w, e = sl.New(flags, tag)
|
|
l = w
|
|
return w, e
|
|
}
|
|
|
|
// Alert returns a log Alert error
|
|
func Alert(s string) error {
|
|
if l != nil {
|
|
return l.Alert(s)
|
|
}
|
|
return nil
|
|
|
|
}
|
|
|
|
// LogClose closes the log Writer.
|
|
func LogClose() error {
|
|
if l != nil {
|
|
return l.Close()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogCrit returns a log Alert error
|
|
func LogCrit(s string) error {
|
|
if l != nil {
|
|
return l.Crit(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogDebug returns a log Debug error
|
|
func LogDebug(s string) error {
|
|
if l != nil {
|
|
return l.Debug(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogEmerg returns a log Emerg error
|
|
func LogEmerg(s string) error {
|
|
if l != nil {
|
|
return l.Emerg(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogErr returns a log Err error
|
|
func LogErr(s string) error {
|
|
if l != nil {
|
|
return l.Err(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogInfo returns a log Info error
|
|
func LogInfo(s string) error {
|
|
if l != nil {
|
|
return l.Info(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogNotice returns a log Notice error
|
|
func LogNotice(s string) error {
|
|
if l != nil {
|
|
return l.Notice(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogWarning returns a log Warning error
|
|
func LogWarning(s string) error {
|
|
if l != nil {
|
|
return l.Warning(s)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// LogWrite writes to the logger at default level
|
|
func LogWrite(b []byte) (int, error) {
|
|
if l != nil {
|
|
return l.Write(b)
|
|
}
|
|
return len(b),nil
|
|
}
|