mirror of https://github.com/sirupsen/logrus.git
Added TRACE level logging.
This commit is contained in:
parent
680f584d62
commit
4981d8161c
|
@ -1 +1,2 @@
|
||||||
logrus
|
logrus
|
||||||
|
vendor
|
||||||
|
|
18
entry.go
18
entry.go
|
@ -168,6 +168,12 @@ func (entry *Entry) Debug(args ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (entry *Entry) Trace(args ...interface{}) {
|
||||||
|
if entry.Logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry.log(TraceLevel, fmt.Sprint(args...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (entry *Entry) Print(args ...interface{}) {
|
func (entry *Entry) Print(args ...interface{}) {
|
||||||
entry.Info(args...)
|
entry.Info(args...)
|
||||||
}
|
}
|
||||||
|
@ -216,6 +222,12 @@ func (entry *Entry) Debugf(format string, args ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (entry *Entry) Tracef(format string, args ...interface{}) {
|
||||||
|
if entry.Logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry.Trace(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (entry *Entry) Infof(format string, args ...interface{}) {
|
func (entry *Entry) Infof(format string, args ...interface{}) {
|
||||||
if entry.Logger.IsLevelEnabled(InfoLevel) {
|
if entry.Logger.IsLevelEnabled(InfoLevel) {
|
||||||
entry.Info(fmt.Sprintf(format, args...))
|
entry.Info(fmt.Sprintf(format, args...))
|
||||||
|
@ -257,6 +269,12 @@ func (entry *Entry) Panicf(format string, args ...interface{}) {
|
||||||
|
|
||||||
// Entry Println family functions
|
// Entry Println family functions
|
||||||
|
|
||||||
|
func (entry *Entry) Traceln(args ...interface{}) {
|
||||||
|
if entry.Logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry.Trace(entry.sprintlnn(args...))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (entry *Entry) Debugln(args ...interface{}) {
|
func (entry *Entry) Debugln(args ...interface{}) {
|
||||||
if entry.Logger.IsLevelEnabled(DebugLevel) {
|
if entry.Logger.IsLevelEnabled(DebugLevel) {
|
||||||
entry.Debug(entry.sprintlnn(args...))
|
entry.Debug(entry.sprintlnn(args...))
|
||||||
|
|
|
@ -12,7 +12,7 @@ func Example_basic() {
|
||||||
log.Formatter = new(logrus.TextFormatter) //default
|
log.Formatter = new(logrus.TextFormatter) //default
|
||||||
log.Formatter.(*logrus.TextFormatter).DisableColors = true // remove colors
|
log.Formatter.(*logrus.TextFormatter).DisableColors = true // remove colors
|
||||||
log.Formatter.(*logrus.TextFormatter).DisableTimestamp = true // remove timestamp from test output
|
log.Formatter.(*logrus.TextFormatter).DisableTimestamp = true // remove timestamp from test output
|
||||||
log.Level = logrus.DebugLevel
|
log.Level = logrus.TraceLevel
|
||||||
log.Out = os.Stdout
|
log.Out = os.Stdout
|
||||||
|
|
||||||
// file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666)
|
// file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666)
|
||||||
|
@ -37,6 +37,11 @@ func Example_basic() {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
log.WithFields(logrus.Fields{
|
||||||
|
"animal": "walrus",
|
||||||
|
"number": 0,
|
||||||
|
}).Trace("Went to the beach")
|
||||||
|
|
||||||
log.WithFields(logrus.Fields{
|
log.WithFields(logrus.Fields{
|
||||||
"animal": "walrus",
|
"animal": "walrus",
|
||||||
"number": 8,
|
"number": 8,
|
||||||
|
@ -62,6 +67,7 @@ func Example_basic() {
|
||||||
}).Panic("It's over 9000!")
|
}).Panic("It's over 9000!")
|
||||||
|
|
||||||
// Output:
|
// Output:
|
||||||
|
// level=trace msg="Went to the beach" animal=walrus number=0
|
||||||
// level=debug msg="Started observing beach" animal=walrus number=8
|
// level=debug msg="Started observing beach" animal=walrus number=8
|
||||||
// level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
|
// level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
|
||||||
// level=warning msg="The group's number increased tremendously!" number=122 omg=true
|
// level=warning msg="The group's number increased tremendously!" number=122 omg=true
|
||||||
|
|
15
exported.go
15
exported.go
|
@ -77,6 +77,11 @@ func WithTime(t time.Time) *Entry {
|
||||||
return std.WithTime(t)
|
return std.WithTime(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Trace logs a message at level Trace on the standard logger.
|
||||||
|
func Trace(args ...interface{}) {
|
||||||
|
std.Trace(args...)
|
||||||
|
}
|
||||||
|
|
||||||
// Debug logs a message at level Debug on the standard logger.
|
// Debug logs a message at level Debug on the standard logger.
|
||||||
func Debug(args ...interface{}) {
|
func Debug(args ...interface{}) {
|
||||||
std.Debug(args...)
|
std.Debug(args...)
|
||||||
|
@ -117,6 +122,11 @@ func Fatal(args ...interface{}) {
|
||||||
std.Fatal(args...)
|
std.Fatal(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tracef logs a message at level Debug on the standard logger.
|
||||||
|
func Tracef(format string, args ...interface{}) {
|
||||||
|
std.Tracef(format, args...)
|
||||||
|
}
|
||||||
|
|
||||||
// Debugf logs a message at level Debug on the standard logger.
|
// Debugf logs a message at level Debug on the standard logger.
|
||||||
func Debugf(format string, args ...interface{}) {
|
func Debugf(format string, args ...interface{}) {
|
||||||
std.Debugf(format, args...)
|
std.Debugf(format, args...)
|
||||||
|
@ -157,6 +167,11 @@ func Fatalf(format string, args ...interface{}) {
|
||||||
std.Fatalf(format, args...)
|
std.Fatalf(format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Traceln logs a message at level Debug on the standard logger.
|
||||||
|
func Traceln(args ...interface{}) {
|
||||||
|
std.Traceln(args...)
|
||||||
|
}
|
||||||
|
|
||||||
// Debugln logs a message at level Debug on the standard logger.
|
// Debugln logs a message at level Debug on the standard logger.
|
||||||
func Debugln(args ...interface{}) {
|
func Debugln(args ...interface{}) {
|
||||||
std.Debugln(args...)
|
std.Debugln(args...)
|
||||||
|
|
|
@ -21,6 +21,7 @@ func (hook *TestHook) Fire(entry *Entry) error {
|
||||||
|
|
||||||
func (hook *TestHook) Levels() []Level {
|
func (hook *TestHook) Levels() []Level {
|
||||||
return []Level{
|
return []Level{
|
||||||
|
TraceLevel,
|
||||||
DebugLevel,
|
DebugLevel,
|
||||||
InfoLevel,
|
InfoLevel,
|
||||||
WarnLevel,
|
WarnLevel,
|
||||||
|
@ -53,6 +54,7 @@ func (hook *ModifyHook) Fire(entry *Entry) error {
|
||||||
|
|
||||||
func (hook *ModifyHook) Levels() []Level {
|
func (hook *ModifyHook) Levels() []Level {
|
||||||
return []Level{
|
return []Level{
|
||||||
|
TraceLevel,
|
||||||
DebugLevel,
|
DebugLevel,
|
||||||
InfoLevel,
|
InfoLevel,
|
||||||
WarnLevel,
|
WarnLevel,
|
||||||
|
|
|
@ -43,7 +43,7 @@ func (hook *SyslogHook) Fire(entry *logrus.Entry) error {
|
||||||
return hook.Writer.Warning(line)
|
return hook.Writer.Warning(line)
|
||||||
case logrus.InfoLevel:
|
case logrus.InfoLevel:
|
||||||
return hook.Writer.Info(line)
|
return hook.Writer.Info(line)
|
||||||
case logrus.DebugLevel:
|
case logrus.DebugLevel, logrus.TraceLevel:
|
||||||
return hook.Writer.Debug(line)
|
return hook.Writer.Debug(line)
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
|
|
24
logger.go
24
logger.go
|
@ -126,6 +126,14 @@ func (logger *Logger) WithTime(t time.Time) *Entry {
|
||||||
return entry.WithTime(t)
|
return entry.WithTime(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (logger *Logger) Tracef(format string, args ...interface{}) {
|
||||||
|
if logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry := logger.newEntry()
|
||||||
|
entry.Tracef(format, args...)
|
||||||
|
logger.releaseEntry(entry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (logger *Logger) Debugf(format string, args ...interface{}) {
|
func (logger *Logger) Debugf(format string, args ...interface{}) {
|
||||||
if logger.IsLevelEnabled(DebugLevel) {
|
if logger.IsLevelEnabled(DebugLevel) {
|
||||||
entry := logger.newEntry()
|
entry := logger.newEntry()
|
||||||
|
@ -189,6 +197,14 @@ func (logger *Logger) Panicf(format string, args ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (logger *Logger) Trace(args ...interface{}) {
|
||||||
|
if logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry := logger.newEntry()
|
||||||
|
entry.Trace(args...)
|
||||||
|
logger.releaseEntry(entry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (logger *Logger) Debug(args ...interface{}) {
|
func (logger *Logger) Debug(args ...interface{}) {
|
||||||
if logger.IsLevelEnabled(DebugLevel) {
|
if logger.IsLevelEnabled(DebugLevel) {
|
||||||
entry := logger.newEntry()
|
entry := logger.newEntry()
|
||||||
|
@ -252,6 +268,14 @@ func (logger *Logger) Panic(args ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (logger *Logger) Traceln(args ...interface{}) {
|
||||||
|
if logger.IsLevelEnabled(TraceLevel) {
|
||||||
|
entry := logger.newEntry()
|
||||||
|
entry.Traceln(args...)
|
||||||
|
logger.releaseEntry(entry)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (logger *Logger) Debugln(args ...interface{}) {
|
func (logger *Logger) Debugln(args ...interface{}) {
|
||||||
if logger.IsLevelEnabled(DebugLevel) {
|
if logger.IsLevelEnabled(DebugLevel) {
|
||||||
entry := logger.newEntry()
|
entry := logger.newEntry()
|
||||||
|
|
10
logrus.go
10
logrus.go
|
@ -15,6 +15,8 @@ type Level uint32
|
||||||
// Convert the Level to a string. E.g. PanicLevel becomes "panic".
|
// Convert the Level to a string. E.g. PanicLevel becomes "panic".
|
||||||
func (level Level) String() string {
|
func (level Level) String() string {
|
||||||
switch level {
|
switch level {
|
||||||
|
case TraceLevel:
|
||||||
|
return "trace"
|
||||||
case DebugLevel:
|
case DebugLevel:
|
||||||
return "debug"
|
return "debug"
|
||||||
case InfoLevel:
|
case InfoLevel:
|
||||||
|
@ -47,6 +49,8 @@ func ParseLevel(lvl string) (Level, error) {
|
||||||
return InfoLevel, nil
|
return InfoLevel, nil
|
||||||
case "debug":
|
case "debug":
|
||||||
return DebugLevel, nil
|
return DebugLevel, nil
|
||||||
|
case "trace":
|
||||||
|
return TraceLevel, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var l Level
|
var l Level
|
||||||
|
@ -61,6 +65,7 @@ var AllLevels = []Level{
|
||||||
WarnLevel,
|
WarnLevel,
|
||||||
InfoLevel,
|
InfoLevel,
|
||||||
DebugLevel,
|
DebugLevel,
|
||||||
|
TraceLevel,
|
||||||
}
|
}
|
||||||
|
|
||||||
// These are the different logging levels. You can set the logging level to log
|
// These are the different logging levels. You can set the logging level to log
|
||||||
|
@ -82,6 +87,8 @@ const (
|
||||||
InfoLevel
|
InfoLevel
|
||||||
// DebugLevel level. Usually only enabled when debugging. Very verbose logging.
|
// DebugLevel level. Usually only enabled when debugging. Very verbose logging.
|
||||||
DebugLevel
|
DebugLevel
|
||||||
|
// TraceLevel level. Usually only enabled when debugging. Very verbose logging. Usually reserved for message traces
|
||||||
|
TraceLevel
|
||||||
)
|
)
|
||||||
|
|
||||||
// Won't compile if StdLogger can't be realized by a log.Logger
|
// Won't compile if StdLogger can't be realized by a log.Logger
|
||||||
|
@ -114,6 +121,7 @@ type FieldLogger interface {
|
||||||
WithFields(fields Fields) *Entry
|
WithFields(fields Fields) *Entry
|
||||||
WithError(err error) *Entry
|
WithError(err error) *Entry
|
||||||
|
|
||||||
|
Tracef(format string, args ...interface{})
|
||||||
Debugf(format string, args ...interface{})
|
Debugf(format string, args ...interface{})
|
||||||
Infof(format string, args ...interface{})
|
Infof(format string, args ...interface{})
|
||||||
Printf(format string, args ...interface{})
|
Printf(format string, args ...interface{})
|
||||||
|
@ -123,6 +131,7 @@ type FieldLogger interface {
|
||||||
Fatalf(format string, args ...interface{})
|
Fatalf(format string, args ...interface{})
|
||||||
Panicf(format string, args ...interface{})
|
Panicf(format string, args ...interface{})
|
||||||
|
|
||||||
|
Trace(args ...interface{})
|
||||||
Debug(args ...interface{})
|
Debug(args ...interface{})
|
||||||
Info(args ...interface{})
|
Info(args ...interface{})
|
||||||
Print(args ...interface{})
|
Print(args ...interface{})
|
||||||
|
@ -132,6 +141,7 @@ type FieldLogger interface {
|
||||||
Fatal(args ...interface{})
|
Fatal(args ...interface{})
|
||||||
Panic(args ...interface{})
|
Panic(args ...interface{})
|
||||||
|
|
||||||
|
Traceln(args ...interface{})
|
||||||
Debugln(args ...interface{})
|
Debugln(args ...interface{})
|
||||||
Infoln(args ...interface{})
|
Infoln(args ...interface{})
|
||||||
Println(args ...interface{})
|
Println(args ...interface{})
|
||||||
|
|
|
@ -183,7 +183,7 @@ func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
|
||||||
func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
|
func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) {
|
||||||
var levelColor int
|
var levelColor int
|
||||||
switch entry.Level {
|
switch entry.Level {
|
||||||
case DebugLevel:
|
case DebugLevel, TraceLevel:
|
||||||
levelColor = gray
|
levelColor = gray
|
||||||
case WarnLevel:
|
case WarnLevel:
|
||||||
levelColor = yellow
|
levelColor = yellow
|
||||||
|
|
|
@ -24,6 +24,8 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter {
|
||||||
var printFunc func(args ...interface{})
|
var printFunc func(args ...interface{})
|
||||||
|
|
||||||
switch level {
|
switch level {
|
||||||
|
case TraceLevel:
|
||||||
|
printFunc = entry.Trace
|
||||||
case DebugLevel:
|
case DebugLevel:
|
||||||
printFunc = entry.Debug
|
printFunc = entry.Debug
|
||||||
case InfoLevel:
|
case InfoLevel:
|
||||||
|
|
Loading…
Reference in New Issue