logging
This commit is contained in:
parent
0325eb8536
commit
1827ba9036
|
@ -0,0 +1,191 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
gsyslog "github.com/hashicorp/go-syslog"
|
||||
)
|
||||
|
||||
type logger struct {
|
||||
l gsyslog.Syslogger
|
||||
p gsyslog.Priority
|
||||
}
|
||||
|
||||
func (log *logger) printf(p gsyslog.Priority, format string, args ...interface{}) {
|
||||
if p <= log.p {
|
||||
fmt.Printf("%s [%s] ", prioritiev[p], timestamp())
|
||||
fmt.Printf(format, args...)
|
||||
}
|
||||
|
||||
if log.l != nil {
|
||||
log.l.WriteLevel(p, []byte(fmt.Sprintf(format, args...)))
|
||||
}
|
||||
}
|
||||
|
||||
func (log *logger) print(p gsyslog.Priority, args ...interface{}) {
|
||||
if p <= log.p {
|
||||
fmt.Printf("%s [%s] ", prioritiev[p], timestamp())
|
||||
fmt.Print(args...)
|
||||
}
|
||||
|
||||
if log.l != nil {
|
||||
log.l.WriteLevel(p, []byte(fmt.Sprint(args...)))
|
||||
}
|
||||
}
|
||||
|
||||
func (log *logger) println(p gsyslog.Priority, args ...interface{}) {
|
||||
if p <= log.p {
|
||||
fmt.Printf("%s [%s] ", prioritiev[p], timestamp())
|
||||
fmt.Println(args...)
|
||||
}
|
||||
|
||||
if log.l != nil {
|
||||
log.l.WriteLevel(p, []byte(fmt.Sprintln(args...)))
|
||||
}
|
||||
}
|
||||
|
||||
var log = &logger{p: gsyslog.LOG_WARNING}
|
||||
|
||||
var priorities = map[string]gsyslog.Priority{
|
||||
"EMERG": gsyslog.LOG_EMERG,
|
||||
"ALERT": gsyslog.LOG_ALERT,
|
||||
"CRIT": gsyslog.LOG_CRIT,
|
||||
"ERR": gsyslog.LOG_ERR,
|
||||
"WARNING": gsyslog.LOG_WARNING,
|
||||
"NOTICE": gsyslog.LOG_NOTICE,
|
||||
"INFO": gsyslog.LOG_INFO,
|
||||
"DEBUG": gsyslog.LOG_DEBUG,
|
||||
}
|
||||
|
||||
var prioritiev = map[gsyslog.Priority]string{
|
||||
gsyslog.LOG_EMERG: "EMERG",
|
||||
gsyslog.LOG_ALERT: "ALERT",
|
||||
gsyslog.LOG_CRIT: "CRIT",
|
||||
gsyslog.LOG_ERR: "ERR",
|
||||
gsyslog.LOG_WARNING: "WARNING",
|
||||
gsyslog.LOG_NOTICE: "NOTICE",
|
||||
gsyslog.LOG_INFO: "INFO",
|
||||
gsyslog.LOG_DEBUG: "DEBUG",
|
||||
}
|
||||
|
||||
func timestamp() string {
|
||||
return time.Now().Format("2006-01-02 15:04:05 MST")
|
||||
}
|
||||
|
||||
func Setup(level, tag string) error {
|
||||
if tag == "" {
|
||||
tag = "kdhcp"
|
||||
}
|
||||
|
||||
priority, ok := priorities[level]
|
||||
if !ok {
|
||||
return fmt.Errorf("log: unknown priority %s", level)
|
||||
}
|
||||
|
||||
log.p = priority
|
||||
|
||||
var err error
|
||||
log.l, err = gsyslog.NewLogger(priority, "daemon", tag)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Debug(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_DEBUG, args...)
|
||||
}
|
||||
|
||||
func Info(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_INFO, args...)
|
||||
}
|
||||
|
||||
func Notice(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_NOTICE, args...)
|
||||
}
|
||||
|
||||
func Warning(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_WARNING, args...)
|
||||
}
|
||||
|
||||
func Err(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_ERR, args...)
|
||||
}
|
||||
|
||||
func Crit(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_CRIT, args...)
|
||||
}
|
||||
|
||||
func Alert(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_ALERT, args...)
|
||||
}
|
||||
|
||||
func Emerg(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_EMERG, args...)
|
||||
}
|
||||
|
||||
func Debugln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_DEBUG, args...)
|
||||
}
|
||||
|
||||
func Infoln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_INFO, args...)
|
||||
}
|
||||
|
||||
func Noticeln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_NOTICE, args...)
|
||||
}
|
||||
|
||||
func Warningln(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_WARNING, args...)
|
||||
}
|
||||
|
||||
func Errln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_ERR, args...)
|
||||
}
|
||||
|
||||
func Critln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_CRIT, args...)
|
||||
}
|
||||
|
||||
func Alertln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_ALERT, args...)
|
||||
}
|
||||
|
||||
func Emergln(args ...interface{}) {
|
||||
log.println(gsyslog.LOG_EMERG, args...)
|
||||
}
|
||||
|
||||
func Debugf(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_DEBUG, args...)
|
||||
}
|
||||
|
||||
func Infof(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_INFO, args...)
|
||||
}
|
||||
|
||||
func Noticef(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_NOTICE, args...)
|
||||
}
|
||||
|
||||
func Warningf(args ...interface{}) {
|
||||
log.print(gsyslog.LOG_WARNING, args...)
|
||||
}
|
||||
|
||||
func Errf(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_ERR, args...)
|
||||
}
|
||||
|
||||
func Critf(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_CRIT, args...)
|
||||
}
|
||||
|
||||
func Alertf(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_ALERT, args...)
|
||||
}
|
||||
|
||||
func Emergf(args ...interface{}) {
|
||||
log.printf(gsyslog.LOG_EMERG, args...)
|
||||
}
|
Loading…
Reference in New Issue