diff --git a/lib/fs/debug.go b/lib/fs/debug.go index 075954bb..58cfbf9d 100644 --- a/lib/fs/debug.go +++ b/lib/fs/debug.go @@ -18,5 +18,12 @@ var ( ) func init() { - l.SetDebug("fs", strings.Contains(os.Getenv("STTRACE"), "fs") || os.Getenv("STTRACE") == "all") + logger.DefaultLogger.NewFacility("walkfs", "Filesystem access while walking") + switch { + case strings.Contains(os.Getenv("STTRACE"), "walkfs") || os.Getenv("STTRACE") == "all": + l.SetDebug("walkfs", true) + fallthrough + case strings.Contains(os.Getenv("STTRACE"), "fs"): + l.SetDebug("fs", true) + } } diff --git a/lib/fs/filesystem.go b/lib/fs/filesystem.go index 1b99c6e8..112d2f89 100644 --- a/lib/fs/filesystem.go +++ b/lib/fs/filesystem.go @@ -160,7 +160,7 @@ func NewFilesystem(fsType FilesystemType, uri string) Filesystem { var fs Filesystem switch fsType { case FilesystemTypeBasic: - fs = NewWalkFilesystem(newBasicFilesystem(uri)) + fs = newBasicFilesystem(uri) default: l.Debugln("Unknown filesystem", fsType, uri) fs = &errorFilesystem{ @@ -170,10 +170,15 @@ func NewFilesystem(fsType FilesystemType, uri string) Filesystem { } } - if l.ShouldDebug("fs") { - fs = &logFilesystem{fs} + if l.ShouldDebug("walkfs") { + return NewWalkFilesystem(&logFilesystem{fs}) } - return fs + + if l.ShouldDebug("fs") { + return &logFilesystem{NewWalkFilesystem(fs)} + } + + return NewWalkFilesystem(fs) } // IsInternal returns true if the file, as a path relative to the folder