summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-02-28 11:23:27 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-03-02 17:29:27 -0700
commit301a28a093372f1182253d021659425070ae8747 (patch)
tree90113b4c4dac91ea5ad6f4342b45a9b9b2988007 /lib
parent996137cdfdff9ec6fbb5c93e21d75b21052e01ae (diff)
Shorten the log lines if < LogLevelDebug
Diffstat (limited to 'lib')
-rw-r--r--lib/textui/log.go44
-rw-r--r--lib/textui/log_test.go25
2 files changed, 38 insertions, 31 deletions
diff --git a/lib/textui/log.go b/lib/textui/log.go
index b4dcea4..2a6fdd4 100644
--- a/lib/textui/log.go
+++ b/lib/textui/log.go
@@ -237,28 +237,30 @@ func (l *logger) log(lvl dlog.LogLevel, writeMsg func(io.Writer)) {
}
// caller //////////////////////////////////////////////////////////////
- const (
- thisModule = "git.lukeshu.com/btrfs-progs-ng"
- thisPackage = "git.lukeshu.com/btrfs-progs-ng/lib/textui"
- maximumCallerDepth int = 25
- minimumCallerDepth int = 3 // runtime.Callers + .log + .Log
- )
- var pcs [maximumCallerDepth]uintptr
- depth := runtime.Callers(minimumCallerDepth, pcs[:])
- frames := runtime.CallersFrames(pcs[:depth])
- for f, again := frames.Next(); again; f, again = frames.Next() {
- if !strings.HasPrefix(f.Function, thisModule+"/") {
- continue
- }
- if strings.HasPrefix(f.Function, thisPackage+".") {
- continue
- }
- if nextField == len(fieldKeys) {
- logBuf.WriteString(" :")
+ if lvl >= dlog.LogLevelDebug {
+ const (
+ thisModule = "git.lukeshu.com/btrfs-progs-ng"
+ thisPackage = "git.lukeshu.com/btrfs-progs-ng/lib/textui"
+ maximumCallerDepth int = 25
+ minimumCallerDepth int = 3 // runtime.Callers + .log + .Log
+ )
+ var pcs [maximumCallerDepth]uintptr
+ depth := runtime.Callers(minimumCallerDepth, pcs[:])
+ frames := runtime.CallersFrames(pcs[:depth])
+ for f, again := frames.Next(); again; f, again = frames.Next() {
+ if !strings.HasPrefix(f.Function, thisModule+"/") {
+ continue
+ }
+ if strings.HasPrefix(f.Function, thisPackage+".") {
+ continue
+ }
+ if nextField == len(fieldKeys) {
+ logBuf.WriteString(" :")
+ }
+ file := f.File[strings.LastIndex(f.File, thisModDir+"/")+len(thisModDir+"/"):]
+ fmt.Fprintf(logBuf, " (from %s:%d)", file, f.Line)
+ break
}
- file := f.File[strings.LastIndex(f.File, thisModDir+"/")+len(thisModDir+"/"):]
- fmt.Fprintf(logBuf, " (from %s:%d)", file, f.Line)
- break
}
// boilerplate /////////////////////////////////////////////////////////
diff --git a/lib/textui/log_test.go b/lib/textui/log_test.go
index bcd9c39..44958cb 100644
--- a/lib/textui/log_test.go
+++ b/lib/textui/log_test.go
@@ -15,8 +15,13 @@ import (
"git.lukeshu.com/btrfs-progs-ng/lib/textui"
)
-func logLineRegexp(inner string) string {
- return `[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{4} ` + inner + ` \(from lib/textui/log_test\.go:[0-9]+\)\n`
+func logLineRegexp(includePos bool, inner string) string {
+ ret := `[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{4} ` + inner
+ if includePos {
+ ret += ` : \(from lib/textui/log_test\.go:[0-9]+\)`
+ }
+ ret += `\n`
+ return ret
}
func TestLogFormat(t *testing.T) {
@@ -25,7 +30,7 @@ func TestLogFormat(t *testing.T) {
ctx := dlog.WithLogger(context.Background(), textui.NewLogger(&out, dlog.LogLevelTrace))
dlog.Debugf(ctx, "foo %d", 12345)
assert.Regexp(t,
- `^`+logLineRegexp(`DBG : foo 12,345 :`)+`$`,
+ `^`+logLineRegexp(true, `DBG : foo 12,345`)+`$`,
out.String())
}
@@ -45,12 +50,12 @@ func TestLogLevel(t *testing.T) {
dlog.Error(ctx, "Error")
assert.Regexp(t,
`^`+
- logLineRegexp(`ERR : Error :`)+
- logLineRegexp(`WRN : Warn :`)+
- logLineRegexp(`INF : Info :`)+
- logLineRegexp(`INF : Info :`)+
- logLineRegexp(`WRN : Warn :`)+
- logLineRegexp(`ERR : Error :`)+
+ logLineRegexp(false, `ERR : Error`)+
+ logLineRegexp(false, `WRN : Warn`)+
+ logLineRegexp(false, `INF : Info`)+
+ logLineRegexp(false, `INF : Info`)+
+ logLineRegexp(false, `WRN : Warn`)+
+ logLineRegexp(false, `ERR : Error`)+
`$`,
out.String())
}
@@ -62,6 +67,6 @@ func TestLogField(t *testing.T) {
ctx = dlog.WithField(ctx, "foo", 12345)
dlog.Info(ctx, "msg")
assert.Regexp(t,
- `^`+logLineRegexp(`INF : msg : foo=12,345`)+`$`,
+ `^`+logLineRegexp(false, `INF : msg : foo=12,345`)+`$`,
out.String())
}