diff --git a/commands/root.go b/commands/root.go index 7df8c4b7..c5f03097 100644 --- a/commands/root.go +++ b/commands/root.go @@ -28,12 +28,24 @@ func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Comman } } - logrus.AddHook(logutil.NewFilter( + logrus.AddHook(logutil.NewFilter([]logrus.Level{ + logrus.DebugLevel, + }, "serving grpc connection", "stopping session", "using default config store", )) + // filter out useless commandConn.CloseWrite warning message that can occur + // when listing builder instances with "buildx ls" for those that are + // unreachable: "commandConn.CloseWrite: commandconn: failed to wait: signal: killed" + // https://github.com/docker/cli/blob/3fb4fb83dfb5db0c0753a8316f21aea54dab32c5/cli/connhelper/commandconn/commandconn.go#L203-L214 + logrus.AddHook(logutil.NewFilter([]logrus.Level{ + logrus.WarnLevel, + }, + "commandConn.CloseWrite:", + )) + addCommands(cmd, dockerCli) return cmd } diff --git a/util/logutil/filter.go b/util/logutil/filter.go index 2e8f91d9..2e054f6e 100644 --- a/util/logutil/filter.go +++ b/util/logutil/filter.go @@ -7,22 +7,24 @@ import ( "github.com/sirupsen/logrus" ) -func NewFilter(filters ...string) logrus.Hook { +func NewFilter(levels []logrus.Level, filters ...string) logrus.Hook { dl := logrus.New() dl.SetOutput(ioutil.Discard) return &logsFilter{ + levels: levels, filters: filters, discardLogger: dl, } } type logsFilter struct { + levels []logrus.Level filters []string discardLogger *logrus.Logger } func (d *logsFilter) Levels() []logrus.Level { - return []logrus.Level{logrus.DebugLevel} + return d.levels } func (d *logsFilter) Fire(entry *logrus.Entry) error {