Permalink
Browse files

Ensure we log into logrus on command error

`urfave/cli` now takes upon itself to log the error returned by the
command action directly. This means that by default the `--log` option
was ignored upon error.

This commit ensure that `urfave/cli.ErrWriter` will use logrus

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
  • Loading branch information...
1 parent 3597b7b commit 294d24fb1a011ab828e383c761a96776c3340f9d @mlaventure mlaventure committed Sep 29, 2016
Showing with 14 additions and 0 deletions.
  1. +14 −0 main.go
View
@@ -2,6 +2,7 @@ package main
import (
"fmt"
+ "io"
"os"
"strings"
@@ -129,7 +130,20 @@ func main() {
}
return nil
}
+ // If the command returns an error, cli takes upon itself to print
+ // the error on cli.ErrWriter and exit.
+ // Use our own writer here to ensure the log gets sent to the right location.
+ cli.ErrWriter = &FatalWriter{cli.ErrWriter}
if err := app.Run(os.Args); err != nil {
fatal(err)
}
}
+
+type FatalWriter struct {
+ cliErrWriter io.Writer
+}
+
+func (f *FatalWriter) Write(p []byte) (n int, err error) {
+ logrus.Error(string(p))
+ return f.cliErrWriter.Write(p)
+}

0 comments on commit 294d24f

Please sign in to comment.