aboutsummaryrefslogtreecommitdiffstats
path: root/internal/debug/flags.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2017-02-24 02:31:13 +0800
committerFelix Lange <fjl@twurst.com>2017-02-27 22:33:12 +0800
commitd0eba23af373bb54b00b242ccee4239fc9afd873 (patch)
treecf19edb8ed153797edc8da7772f6d7f0671c410b /internal/debug/flags.go
parent43362ab4fb561323e1a766405eaa8f82dec4a280 (diff)
downloaddexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar.gz
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar.bz2
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar.lz
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar.xz
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.tar.zst
dexon-d0eba23af373bb54b00b242ccee4239fc9afd873.zip
all: disable log message colors outside of geth
Also tweak behaviour so colors are only enabled when stderr is a terminal.
Diffstat (limited to 'internal/debug/flags.go')
-rw-r--r--internal/debug/flags.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/debug/flags.go b/internal/debug/flags.go
index 29d1f3388..f95251939 100644
--- a/internal/debug/flags.go
+++ b/internal/debug/flags.go
@@ -18,12 +18,15 @@ package debug
import (
"fmt"
+ "io"
"net/http"
_ "net/http/pprof"
"os"
"runtime"
"github.com/ethereum/go-ethereum/log"
+ "github.com/ethereum/go-ethereum/log/term"
+ colorable "github.com/mattn/go-colorable"
"gopkg.in/urfave/cli.v1"
)
@@ -87,16 +90,22 @@ var Flags = []cli.Flag{
memprofilerateFlag, blockprofilerateFlag, cpuprofileFlag, traceFlag,
}
-// glogger is the glog handler used by Geth, allowing the debug APIs to modify
-// verbosity levels, vmodules and backtrace locations.
-var glogger = log.NewGlogHandler(log.StreamHandler(os.Stderr, log.TerminalFormat()))
+var glogger *log.GlogHandler
+
+func init() {
+ usecolor := term.IsTty(os.Stderr.Fd()) && os.Getenv("TERM") != "dumb"
+ output := io.Writer(os.Stderr)
+ if usecolor {
+ output = colorable.NewColorableStderr()
+ }
+ glogger = log.NewGlogHandler(log.StreamHandler(output, log.TerminalFormat(usecolor)))
+}
// Setup initializes profiling and logging based on the CLI flags.
// It should be called as early as possible in the program.
func Setup(ctx *cli.Context) error {
// logging
log.PrintOrigins(ctx.GlobalBool(debugFlag.Name))
-
glogger.Verbosity(log.Lvl(ctx.GlobalInt(verbosityFlag.Name)))
glogger.Vmodule(ctx.GlobalString(vmoduleFlag.Name))
glogger.BacktraceAt(ctx.GlobalString(backtraceAtFlag.Name))