mirror of https://github.com/misterzym/jdocset.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
package log15 |
|
|
|
import ( |
|
"os" |
|
|
|
"github.com/inconshreveable/log15/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) |
|
}
|
|
|