make log file a CLI param; default to stdout if none is provided

This commit is contained in:
Ian Norden
2020-03-23 11:57:36 -05:00
parent 1c208e5946
commit 7bd7cd3aab
2 changed files with 15 additions and 6 deletions
+13 -6
View File
@@ -3,6 +3,8 @@ package main
import (
"os"
"github.com/spf13/viper"
"github.com/vulcanize/vulcanizedb/cmd"
"github.com/sirupsen/logrus"
@@ -12,13 +14,18 @@ func main() {
logrus.SetFormatter(&logrus.TextFormatter{
FullTimestamp: true,
})
file, err := os.OpenFile("vulcanizedb.log",
os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err == nil {
logrus.SetOutput(file)
logfile := viper.GetString("logfile")
if logfile != "" {
file, err := os.OpenFile(logfile,
os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err == nil {
logrus.SetOutput(file)
} else {
logrus.SetOutput(os.Stdout)
logrus.Info("Failed to log to file, using default stdout")
}
} else {
logrus.Info("Failed to log to file, using default stderr")
logrus.SetOutput(os.Stdout)
}
cmd.Execute()
}