| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package log
- import (
- "fmt"
- "time"
- "k8s.io/klog"
- )
- // TODO for deduped functions, if timeLogged > logTypeLimit, should we log once
- // every... 100 (?) times so we don't lose track entirely?
- // concurrency-safe counter
- var ctr = newCounter()
- func Errorf(format string, a ...interface{}) {
- klog.Errorf(fmt.Sprintf("[Error] %s", format), a...)
- }
- func DedupedErrorf(logTypeLimit int, format string, a ...interface{}) {
- timesLogged := ctr.increment(format)
- if timesLogged < logTypeLimit {
- Errorf(format, a...)
- } else if timesLogged == logTypeLimit {
- Errorf(format, a...)
- Infof("%s logged %d times: suppressing future logs", format, logTypeLimit)
- }
- }
- func Warningf(format string, a ...interface{}) {
- klog.V(2).Infof(fmt.Sprintf("[Warning] %s", format), a...)
- }
- func DedupedWarningf(logTypeLimit int, format string, a ...interface{}) {
- timesLogged := ctr.increment(format)
- if timesLogged < logTypeLimit {
- Warningf(format, a...)
- } else if timesLogged == logTypeLimit {
- Warningf(format, a...)
- Infof("%s logged %d times: suppressing future logs", format, logTypeLimit)
- }
- }
- func Infof(format string, a ...interface{}) {
- klog.V(3).Infof(fmt.Sprintf("[Info] %s", format), a...)
- }
- func DedupedInfof(logTypeLimit int, format string, a ...interface{}) {
- timesLogged := ctr.increment(format)
- if timesLogged < logTypeLimit {
- Infof(format, a...)
- } else if timesLogged == logTypeLimit {
- Infof(format, a...)
- Infof("%s logged %d times: suppressing future logs", format, logTypeLimit)
- }
- }
- func Profilef(format string, a ...interface{}) {
- klog.V(3).Infof(fmt.Sprintf("[Profiler] %s", format), a...)
- }
- func Debugf(format string, a ...interface{}) {
- klog.V(5).Infof(fmt.Sprintf("[Debug] %s", format), a...)
- }
- func Profile(start time.Time, name string) {
- elapsed := time.Since(start)
- Profilef("%s: %s", elapsed, name)
- }
- func ProfileWithThreshold(start time.Time, threshold time.Duration, name string) {
- elapsed := time.Since(start)
- if elapsed > threshold {
- Profilef("%s: %s", elapsed, name)
- }
- }
|