mirror of
https://github.com/rclone/rclone.git
synced 2024-11-27 02:45:16 +01:00
11da2a6c9b
The purpose of this is to make it easier to maintain and eventually to allow the rclone backends to be re-used in other projects without having to use the rclone configuration system. The new code layout is documented in CONTRIBUTING.
68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
// Syslog interface for Unix variants only
|
|
|
|
// +build !windows,!nacl,!plan9
|
|
|
|
package log
|
|
|
|
import (
|
|
"log"
|
|
"log/syslog"
|
|
"os"
|
|
"path"
|
|
|
|
"github.com/ncw/rclone/fs"
|
|
)
|
|
|
|
var (
|
|
syslogFacilityMap = 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,
|
|
}
|
|
)
|
|
|
|
// Starts syslog
|
|
func startSysLog() bool {
|
|
facility, ok := syslogFacilityMap[*syslogFacility]
|
|
if !ok {
|
|
log.Fatalf("Unknown syslog facility %q - man syslog for list", *syslogFacility)
|
|
}
|
|
Me := path.Base(os.Args[0])
|
|
w, err := syslog.New(syslog.LOG_NOTICE|facility, Me)
|
|
if err != nil {
|
|
log.Fatalf("Failed to start syslog: %v", err)
|
|
}
|
|
log.SetFlags(0)
|
|
log.SetOutput(w)
|
|
fs.LogPrint = func(level fs.LogLevel, text string) {
|
|
switch level {
|
|
case fs.LogLevelEmergency:
|
|
_ = w.Emerg(text)
|
|
case fs.LogLevelAlert:
|
|
_ = w.Alert(text)
|
|
case fs.LogLevelCritical:
|
|
_ = w.Crit(text)
|
|
case fs.LogLevelError:
|
|
_ = w.Err(text)
|
|
case fs.LogLevelWarning:
|
|
_ = w.Warning(text)
|
|
case fs.LogLevelNotice:
|
|
_ = w.Notice(text)
|
|
case fs.LogLevelInfo:
|
|
_ = w.Info(text)
|
|
case fs.LogLevelDebug:
|
|
_ = w.Debug(text)
|
|
}
|
|
}
|
|
return true
|
|
}
|