Merge pull request #1089 from mlaventure/fix-logging-on-error
Ensure we log into logrus on command error
This commit is contained in:
commit
02f8fa7863
14
main.go
14
main.go
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -129,7 +130,20 @@ func main() {
|
||||||
}
|
}
|
||||||
return nil
|
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 {
|
if err := app.Run(os.Args); err != nil {
|
||||||
fatal(err)
|
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)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue