diff --git a/tm-monitor/main.go b/tm-monitor/main.go index 63b3f60a5..44b7ad427 100644 --- a/tm-monitor/main.go +++ b/tm-monitor/main.go @@ -8,23 +8,25 @@ import ( cmn "github.com/tendermint/go-common" logger "github.com/tendermint/go-logger" + log15 "github.com/tendermint/log15" ) var log = logger.New() func main() { var listenAddr string - var verbose bool + var verbose, noton bool - flag.StringVar(&listenAddr, "-listen-addr", "tcp://0.0.0.0:46670", "HTTP and Websocket server listen address") + flag.StringVar(&listenAddr, "listen-addr", "tcp://0.0.0.0:46670", "HTTP and Websocket server listen address") flag.BoolVar(&verbose, "v", false, "verbose logging") + flag.BoolVar(¬on, "no-ton", false, "Do not show ton (table of nodes)") flag.Usage = func() { fmt.Println(`Tendermint monitor watches over one or more Tendermint core applications, collecting and providing various statistics to the user. Usage: - tm-monitor [-v] [--listen-addr="tcp://0.0.0.0:46670"] [endpoints] + tm-monitor [-v] [-no-ton] [-listen-addr="tcp://0.0.0.0:46670"] [endpoints] Examples: # monitor single instance @@ -43,27 +45,23 @@ Examples: os.Exit(1) } - if verbose { - log.SetHandler(logger.LvlFilterHandler( - logger.LvlDebug, - logger.BypassHandler(), - )) - } else { - log.SetHandler(logger.LvlFilterHandler( - logger.LvlInfo, - logger.BypassHandler(), - )) - } - m := startMonitor(flag.Arg(0)) startRPC(listenAddr, m) - ton := NewTon(m) - ton.Start() + var ton *Ton + if !noton { + logToFile("tm-monitor.log", verbose) + ton = NewTon(m) + ton.Start() + } else { + logToStdout(verbose) + } cmn.TrapSignal(func() { - ton.Stop() + if !noton { + ton.Stop() + } m.Stop() }) } @@ -85,3 +83,31 @@ func startMonitor(endpoints string) *Monitor { return m } + +func logToStdout(verbose bool) { + if verbose { + log.SetHandler(logger.LvlFilterHandler( + logger.LvlDebug, + logger.BypassHandler(), + )) + } else { + log.SetHandler(logger.LvlFilterHandler( + logger.LvlInfo, + logger.BypassHandler(), + )) + } +} + +func logToFile(filename string, verbose bool) { + if verbose { + log.SetHandler(logger.LvlFilterHandler( + logger.LvlDebug, + log15.Must.FileHandler(filename, log15.LogfmtFormat()), + )) + } else { + log.SetHandler(logger.LvlFilterHandler( + logger.LvlInfo, + log15.Must.FileHandler(filename, log15.LogfmtFormat()), + )) + } +}