|
@@ -12,7 +12,10 @@ type PackageLogger struct {
|
|
|
|
|
|
|
|
const calldepth = 3
|
|
const calldepth = 3
|
|
|
|
|
|
|
|
-func (p *PackageLogger) internalLog(depth int, inLevel LogLevel, entries ...LogEntry) {
|
|
|
|
|
|
|
+func (p *PackageLogger) internalLog(depth int, inLevel LogLevel, entries ...interface{}) {
|
|
|
|
|
+ if inLevel != CRITICAL && p.level < inLevel {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
logger.Lock()
|
|
logger.Lock()
|
|
|
defer logger.Unlock()
|
|
defer logger.Unlock()
|
|
|
if logger.formatter != nil {
|
|
if logger.formatter != nil {
|
|
@@ -24,148 +27,113 @@ func (p *PackageLogger) LevelAt(l LogLevel) bool {
|
|
|
return p.level >= l
|
|
return p.level >= l
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// Log a formatted string at any level between ERROR and TRACE
|
|
|
|
|
+func (p *PackageLogger) Logf(l LogLevel, format string, args ...interface{}) {
|
|
|
|
|
+ p.internalLog(calldepth, l, fmt.Sprintf(format, args...))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Log a message at any level between ERROR and TRACE
|
|
|
|
|
+func (p *PackageLogger) Log(l LogLevel, args ...interface{}) {
|
|
|
|
|
+ p.internalLog(calldepth, l, fmt.Sprint(args...))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// log stdlib compatibility
|
|
// log stdlib compatibility
|
|
|
|
|
|
|
|
func (p *PackageLogger) Println(args ...interface{}) {
|
|
func (p *PackageLogger) Println(args ...interface{}) {
|
|
|
- if p.level < INFO {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, INFO, BaseLogEntry(fmt.Sprintln(args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, INFO, fmt.Sprintln(args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *PackageLogger) Printf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Printf(format string, args ...interface{}) {
|
|
|
- if p.level < INFO {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, INFO, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, INFO, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *PackageLogger) Print(args ...interface{}) {
|
|
func (p *PackageLogger) Print(args ...interface{}) {
|
|
|
- if p.level < INFO {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, INFO, BaseLogEntry(fmt.Sprint(args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, INFO, fmt.Sprint(args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Panic and fatal
|
|
// Panic and fatal
|
|
|
|
|
|
|
|
func (p *PackageLogger) Panicf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Panicf(format string, args ...interface{}) {
|
|
|
s := fmt.Sprintf(format, args...)
|
|
s := fmt.Sprintf(format, args...)
|
|
|
- p.internalLog(calldepth, CRITICAL, BaseLogEntry(s))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, CRITICAL, s)
|
|
|
panic(s)
|
|
panic(s)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *PackageLogger) Panic(args ...interface{}) {
|
|
func (p *PackageLogger) Panic(args ...interface{}) {
|
|
|
s := fmt.Sprint(args...)
|
|
s := fmt.Sprint(args...)
|
|
|
- p.internalLog(calldepth, CRITICAL, BaseLogEntry(s))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, CRITICAL, s)
|
|
|
panic(s)
|
|
panic(s)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *PackageLogger) Fatalf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Fatalf(format string, args ...interface{}) {
|
|
|
s := fmt.Sprintf(format, args...)
|
|
s := fmt.Sprintf(format, args...)
|
|
|
- p.internalLog(calldepth, CRITICAL, BaseLogEntry(s))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, CRITICAL, s)
|
|
|
os.Exit(1)
|
|
os.Exit(1)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *PackageLogger) Fatal(args ...interface{}) {
|
|
func (p *PackageLogger) Fatal(args ...interface{}) {
|
|
|
s := fmt.Sprint(args...)
|
|
s := fmt.Sprint(args...)
|
|
|
- p.internalLog(calldepth, CRITICAL, BaseLogEntry(s))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, CRITICAL, s)
|
|
|
os.Exit(1)
|
|
os.Exit(1)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Error Functions
|
|
// Error Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Errorf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Errorf(format string, args ...interface{}) {
|
|
|
- if p.level < ERROR {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, ERROR, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, ERROR, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Error(entries ...LogEntry) {
|
|
|
|
|
- if p.level < ERROR {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Error(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, ERROR, entries...)
|
|
p.internalLog(calldepth, ERROR, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Warning Functions
|
|
// Warning Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Warningf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Warningf(format string, args ...interface{}) {
|
|
|
- if p.level < WARNING {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, WARNING, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, WARNING, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Warning(entries ...LogEntry) {
|
|
|
|
|
- if p.level < WARNING {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Warning(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, WARNING, entries...)
|
|
p.internalLog(calldepth, WARNING, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Notice Functions
|
|
// Notice Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Noticef(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Noticef(format string, args ...interface{}) {
|
|
|
- if p.level < NOTICE {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, NOTICE, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, NOTICE, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Notice(entries ...LogEntry) {
|
|
|
|
|
- if p.level < NOTICE {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Notice(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, NOTICE, entries...)
|
|
p.internalLog(calldepth, NOTICE, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Info Functions
|
|
// Info Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Infof(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Infof(format string, args ...interface{}) {
|
|
|
- if p.level < INFO {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, INFO, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, INFO, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Info(entries ...LogEntry) {
|
|
|
|
|
- if p.level < INFO {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Info(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, INFO, entries...)
|
|
p.internalLog(calldepth, INFO, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Debug Functions
|
|
// Debug Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Debugf(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Debugf(format string, args ...interface{}) {
|
|
|
- if p.level < DEBUG {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, DEBUG, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, DEBUG, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Debug(entries ...LogEntry) {
|
|
|
|
|
- if p.level < DEBUG {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Debug(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, DEBUG, entries...)
|
|
p.internalLog(calldepth, DEBUG, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Trace Functions
|
|
// Trace Functions
|
|
|
|
|
|
|
|
func (p *PackageLogger) Tracef(format string, args ...interface{}) {
|
|
func (p *PackageLogger) Tracef(format string, args ...interface{}) {
|
|
|
- if p.level < TRACE {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- p.internalLog(calldepth, TRACE, BaseLogEntry(fmt.Sprintf(format, args...)))
|
|
|
|
|
|
|
+ p.internalLog(calldepth, TRACE, fmt.Sprintf(format, args...))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (p *PackageLogger) Trace(entries ...LogEntry) {
|
|
|
|
|
- if p.level < TRACE {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
|
|
+func (p *PackageLogger) Trace(entries ...interface{}) {
|
|
|
p.internalLog(calldepth, TRACE, entries...)
|
|
p.internalLog(calldepth, TRACE, entries...)
|
|
|
}
|
|
}
|
|
|
|
|
|