From dc70e36cc5ff101ed198283997572535866f7003 Mon Sep 17 00:00:00 2001 From: Adam Cardenas Date: Mon, 9 May 2016 20:17:15 -0600 Subject: [PATCH] added timeNow override --- .gitignore | 4 ++++ README.md | 3 +++ logger.go | 5 +++++ logger_test.go | 22 +++++++++++++++++++++- 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bcf1408 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.test +.idea +*.iml +*~ \ No newline at end of file diff --git a/README.md b/README.md index 0a7326b..ef1239a 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,9 @@ func main() { // Set the backends to be used. logging.SetBackend(backend1Leveled, backend2Formatter) + + // Set log time to UTC, default is Local + logging.SetTimeNow(time.Now().UTC) log.Debugf("debug %s", Password("secret")) log.Info("info") diff --git a/logger.go b/logger.go index 535ed9b..b19fed5 100644 --- a/logger.go +++ b/logger.go @@ -123,6 +123,11 @@ func MustGetLogger(module string) *Logger { return logger } +// SetTimeNow configures the time.Time value generated for log time values +func SetTimeNow(now func () time.Time) { + timeNow = now +} + // Reset restores the internal state of the logging library. func Reset() { // TODO make a global Init() method to be less magic? or make it such that diff --git a/logger_test.go b/logger_test.go index b9f7fe7..ba64518 100644 --- a/logger_test.go +++ b/logger_test.go @@ -4,7 +4,10 @@ package logging -import "testing" +import ( + "testing" + "time" +) type Password string @@ -60,3 +63,20 @@ func TestPrivateBackend(t *testing.T) { t.Error("logged to defaultBackend:", MemoryRecordN(privateBackend, 0)) } } + +func TestLogger_SetTimerNow(t *testing.T) { + _ = InitForTesting(DEBUG) + _ = MustGetLogger("test") + + if now := timeNow(); now != time.Unix(0, 0).UTC() { + t.Error("test timeNow incorrect", now) + } + + SetTimeNow(func() time.Time { + return time.Unix(1, 1) + }) + + if now := timeNow(); now != time.Unix(1, 1) { + t.Error("test timeNow dit not get overwritten", now) + } +}