diff --git a/internal_logger.go b/internal_logger.go index d0ec7ef..e497849 100644 --- a/internal_logger.go +++ b/internal_logger.go @@ -2,12 +2,15 @@ package flog import ( "io" + "time" ) type internalLogger struct { prefix string style string + begin time.Time + writer io.Writer mutedAlert bool diff --git a/internal_logger_begin.go b/internal_logger_begin.go index 11c9d4b..8f54fa5 100644 --- a/internal_logger_begin.go +++ b/internal_logger_begin.go @@ -2,6 +2,7 @@ package flog import ( "runtime" + "time" ) func (receiver internalLogger) Begin(a ...interface{}) Logger { @@ -16,6 +17,10 @@ func (receiver internalLogger) Begin(a ...interface{}) Logger { } logger := receiver.Prefix(funcName) + switch casted := logger.(type) { + case *internalLogger: + casted.begin = time.Now() + } a = append([]interface{}{"BEGIN"}, a...) diff --git a/internal_logger_end.go b/internal_logger_end.go index d0160c7..8dabc9e 100644 --- a/internal_logger_end.go +++ b/internal_logger_end.go @@ -1,7 +1,17 @@ package flog +import ( + "fmt" + "time" +) + func (receiver internalLogger) End(a ...interface{}) { + diff := time.Now().Sub(receiver.begin) + + msg := fmt.Sprintf(" δt=%s", diff) + a = append([]interface{}{"END"}, a...) + a = append(a, msg) receiver.Debug(a...) }