diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-02-20 23:39:36 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-02-23 18:00:02 +0800 |
commit | ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43 (patch) | |
tree | 5ec75ddab7749a9d0c47a97d6f638b52e6ebc6bb /log/root.go | |
parent | 29fac7de448c85049a97cbec3dc0819122bd2cb0 (diff) | |
download | dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.tar.gz dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.tar.zst dexon-ec7f81f4bc11c6f8203ec1d3055c9a09a244ff43.zip |
log, vendor: vendor in log15 inline into our codebase
Diffstat (limited to 'log/root.go')
-rw-r--r-- | log/root.go | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/log/root.go b/log/root.go new file mode 100644 index 000000000..39b4c9429 --- /dev/null +++ b/log/root.go @@ -0,0 +1,67 @@ +package log + +import ( + "os" + + "github.com/ethereum/go-ethereum/log/term" + "github.com/mattn/go-colorable" +) + +var ( + root *logger + StdoutHandler = StreamHandler(os.Stdout, LogfmtFormat()) + StderrHandler = StreamHandler(os.Stderr, LogfmtFormat()) +) + +func init() { + if term.IsTty(os.Stdout.Fd()) { + StdoutHandler = StreamHandler(colorable.NewColorableStdout(), TerminalFormat()) + } + + if term.IsTty(os.Stderr.Fd()) { + StderrHandler = StreamHandler(colorable.NewColorableStderr(), TerminalFormat()) + } + + root = &logger{[]interface{}{}, new(swapHandler)} + root.SetHandler(StdoutHandler) +} + +// New returns a new logger with the given context. +// New is a convenient alias for Root().New +func New(ctx ...interface{}) Logger { + return root.New(ctx...) +} + +// Root returns the root logger +func Root() Logger { + return root +} + +// The following functions bypass the exported logger methods (logger.Debug, +// etc.) to keep the call depth the same for all paths to logger.write so +// runtime.Caller(2) always refers to the call site in client code. + +// Debug is a convenient alias for Root().Debug +func Debug(msg string, ctx ...interface{}) { + root.write(msg, LvlDebug, ctx) +} + +// Info is a convenient alias for Root().Info +func Info(msg string, ctx ...interface{}) { + root.write(msg, LvlInfo, ctx) +} + +// Warn is a convenient alias for Root().Warn +func Warn(msg string, ctx ...interface{}) { + root.write(msg, LvlWarn, ctx) +} + +// Error is a convenient alias for Root().Error +func Error(msg string, ctx ...interface{}) { + root.write(msg, LvlError, ctx) +} + +// Crit is a convenient alias for Root().Crit +func Crit(msg string, ctx ...interface{}) { + root.write(msg, LvlCrit, ctx) +} |