You've already forked directdnsonly-go
Initial Commit.
This commit is contained in:
216
log/log.go
Normal file
216
log/log.go
Normal file
@@ -0,0 +1,216 @@
|
||||
package log
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/guisea/directdnsonly/config"
|
||||
)
|
||||
|
||||
// Logger defines a set of methods for writing application logs. Derived from and
|
||||
// inspired by logrus.Entry.
|
||||
type Logger interface {
|
||||
Debug(args ...interface{})
|
||||
Debugf(format string, args ...interface{})
|
||||
Debugln(args ...interface{})
|
||||
Error(args ...interface{})
|
||||
Errorf(format string, args ...interface{})
|
||||
Errorln(args ...interface{})
|
||||
Fatal(args ...interface{})
|
||||
Fatalf(format string, args ...interface{})
|
||||
Fatalln(args ...interface{})
|
||||
Info(args ...interface{})
|
||||
Infof(format string, args ...interface{})
|
||||
Infoln(args ...interface{})
|
||||
Panic(args ...interface{})
|
||||
Panicf(format string, args ...interface{})
|
||||
Panicln(args ...interface{})
|
||||
Print(args ...interface{})
|
||||
Printf(format string, args ...interface{})
|
||||
Println(args ...interface{})
|
||||
Warn(args ...interface{})
|
||||
Warnf(format string, args ...interface{})
|
||||
Warning(args ...interface{})
|
||||
Warningf(format string, args ...interface{})
|
||||
Warningln(args ...interface{})
|
||||
Warnln(args ...interface{})
|
||||
}
|
||||
|
||||
var defaultLogger *logrus.Logger
|
||||
|
||||
func init() {
|
||||
defaultLogger = newLogrusLogger(config.Config())
|
||||
}
|
||||
|
||||
|
||||
// NewLogger returns a configured logrus instance
|
||||
func NewLogger(cfg config.Provider) *logrus.Logger {
|
||||
return newLogrusLogger(cfg)
|
||||
}
|
||||
|
||||
|
||||
|
||||
func newLogrusLogger(cfg config.Provider) *logrus.Logger {
|
||||
|
||||
l := logrus.New()
|
||||
|
||||
if cfg.GetBool("json_logs") {
|
||||
l.Formatter = new(logrus.JSONFormatter)
|
||||
}
|
||||
l.Out = os.Stderr
|
||||
|
||||
switch cfg.GetString("loglevel") {
|
||||
case "debug":
|
||||
l.Level = logrus.DebugLevel
|
||||
case "warning":
|
||||
l.Level = logrus.WarnLevel
|
||||
case "info":
|
||||
l.Level = logrus.InfoLevel
|
||||
default:
|
||||
l.Level = logrus.DebugLevel
|
||||
}
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
// Fields is a map string interface to define fields in the structured log
|
||||
type Fields map[string]interface{}
|
||||
|
||||
// With allow us to define fields in out structured logs
|
||||
func (f Fields) With(k string, v interface{}) Fields {
|
||||
f[k] = v
|
||||
return f
|
||||
}
|
||||
|
||||
// WithFields allow us to define fields in out structured logs
|
||||
func (f Fields) WithFields(f2 Fields) Fields {
|
||||
for k, v := range f2 {
|
||||
f[k] = v
|
||||
}
|
||||
return f
|
||||
}
|
||||
|
||||
// WithFields allow us to define fields in out structured logs
|
||||
func WithFields(fields Fields) Logger {
|
||||
return defaultLogger.WithFields(logrus.Fields(fields))
|
||||
}
|
||||
|
||||
// Debug package-level convenience method.
|
||||
func Debug(args ...interface{}) {
|
||||
defaultLogger.Debug(args...)
|
||||
}
|
||||
|
||||
// Debugf package-level convenience method.
|
||||
func Debugf(format string, args ...interface{}) {
|
||||
defaultLogger.Debugf(format, args...)
|
||||
}
|
||||
|
||||
// Debugln package-level convenience method.
|
||||
func Debugln(args ...interface{}) {
|
||||
defaultLogger.Debugln(args...)
|
||||
}
|
||||
|
||||
// Error package-level convenience method.
|
||||
func Error(args ...interface{}) {
|
||||
defaultLogger.Error(args...)
|
||||
}
|
||||
|
||||
// Errorf package-level convenience method.
|
||||
func Errorf(format string, args ...interface{}) {
|
||||
defaultLogger.Errorf(format, args...)
|
||||
}
|
||||
|
||||
// Errorln package-level convenience method.
|
||||
func Errorln(args ...interface{}) {
|
||||
defaultLogger.Errorln(args...)
|
||||
}
|
||||
|
||||
// Fatal package-level convenience method.
|
||||
func Fatal(args ...interface{}) {
|
||||
defaultLogger.Fatal(args...)
|
||||
}
|
||||
|
||||
// Fatalf package-level convenience method.
|
||||
func Fatalf(format string, args ...interface{}) {
|
||||
defaultLogger.Fatalf(format, args...)
|
||||
}
|
||||
|
||||
// Fatalln package-level convenience method.
|
||||
func Fatalln(args ...interface{}) {
|
||||
defaultLogger.Fatalln(args...)
|
||||
}
|
||||
|
||||
// Info package-level convenience method.
|
||||
func Info(args ...interface{}) {
|
||||
defaultLogger.Info(args...)
|
||||
}
|
||||
|
||||
// Infof package-level convenience method.
|
||||
func Infof(format string, args ...interface{}) {
|
||||
defaultLogger.Infof(format, args...)
|
||||
}
|
||||
|
||||
// Infoln package-level convenience method.
|
||||
func Infoln(args ...interface{}) {
|
||||
defaultLogger.Infoln(args...)
|
||||
}
|
||||
|
||||
// Panic package-level convenience method.
|
||||
func Panic(args ...interface{}) {
|
||||
defaultLogger.Panic(args...)
|
||||
}
|
||||
|
||||
// Panicf package-level convenience method.
|
||||
func Panicf(format string, args ...interface{}) {
|
||||
defaultLogger.Panicf(format, args...)
|
||||
}
|
||||
|
||||
// Panicln package-level convenience method.
|
||||
func Panicln(args ...interface{}) {
|
||||
defaultLogger.Panicln(args...)
|
||||
}
|
||||
|
||||
// Print package-level convenience method.
|
||||
func Print(args ...interface{}) {
|
||||
defaultLogger.Print(args...)
|
||||
}
|
||||
|
||||
// Printf package-level convenience method.
|
||||
func Printf(format string, args ...interface{}) {
|
||||
defaultLogger.Printf(format, args...)
|
||||
}
|
||||
|
||||
// Println package-level convenience method.
|
||||
func Println(args ...interface{}) {
|
||||
defaultLogger.Println(args...)
|
||||
}
|
||||
|
||||
// Warn package-level convenience method.
|
||||
func Warn(args ...interface{}) {
|
||||
defaultLogger.Warn(args...)
|
||||
}
|
||||
|
||||
// Warnf package-level convenience method.
|
||||
func Warnf(format string, args ...interface{}) {
|
||||
defaultLogger.Warnf(format, args...)
|
||||
}
|
||||
|
||||
// Warning package-level convenience method.
|
||||
func Warning(args ...interface{}) {
|
||||
defaultLogger.Warning(args...)
|
||||
}
|
||||
|
||||
// Warningf package-level convenience method.
|
||||
func Warningf(format string, args ...interface{}) {
|
||||
defaultLogger.Warningf(format, args...)
|
||||
}
|
||||
|
||||
// Warningln package-level convenience method.
|
||||
func Warningln(args ...interface{}) {
|
||||
defaultLogger.Warningln(args...)
|
||||
}
|
||||
|
||||
// Warnln package-level convenience method.
|
||||
func Warnln(args ...interface{}) {
|
||||
defaultLogger.Warnln(args...)
|
||||
}
|
||||
Reference in New Issue
Block a user