github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/kbfs/libfuse/debug.go (about) 1 // Copyright 2016 Keybase Inc. All rights reserved. 2 // Use of this source code is governed by a BSD 3 // license that can be found in the LICENSE file. 4 // 5 //go:build !windows 6 // +build !windows 7 8 package libfuse 9 10 import ( 11 "fmt" 12 "regexp" 13 14 "github.com/keybase/client/go/libkb" 15 "github.com/keybase/client/go/logger" 16 ) 17 18 var statfsOrAccessRegexp = regexp.MustCompile(`^(<-|->).* (Statfs|Access)`) 19 20 // MakeFuseDebugFn returns a function that logs its argument to the 21 // given log, suitable to assign to fuse.Debug. 22 func MakeFuseDebugFn( 23 log logger.Logger, superVerbose bool) func(msg interface{}) { 24 return func(msg interface{}) { 25 str := fmt.Sprintf("%s", msg) 26 // If superVerbose is not set, filter out Statfs and 27 // Access messages, since they're spammy on OS X. 28 // 29 // Ideally, bazil would let us filter this better, and 30 // also pass in the ctx. 31 if !superVerbose && statfsOrAccessRegexp.MatchString(str) { 32 return 33 } 34 log.Debug("%s", str) 35 } 36 } 37 38 // MakeFuseVDebugFn returns a function that logs its argument to the 39 // given vlog at level 1, suitable to assign to fuse.Debug. 40 func MakeFuseVDebugFn( 41 vlog *libkb.VDebugLog, superVerbose bool) func(msg interface{}) { 42 return func(msg interface{}) { 43 str := fmt.Sprintf("%s", msg) 44 // If superVerbose is not set, filter out Statfs and 45 // Access messages, since they're spammy on OS X. 46 // 47 // Ideally, bazil would let us filter this better, and 48 // also pass in the ctx. 49 if !superVerbose && statfsOrAccessRegexp.MatchString(str) { 50 return 51 } 52 vlog.Log(libkb.VLog1, "%s", str) 53 } 54 }