From 4892eb18b917d1332161018a04f4338e9353f7db Mon Sep 17 00:00:00 2001 From: instabledesign Date: Fri, 17 Feb 2023 15:38:41 +0100 Subject: [PATCH] [middleware](Placeholder) Significantly improve perf when log message not contains % char (#83) --- middleware/benchmark_test.go | 10 ++++++++++ middleware/placeholder.go | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/middleware/benchmark_test.go b/middleware/benchmark_test.go index 8bae2ac..866d466 100644 --- a/middleware/benchmark_test.go +++ b/middleware/benchmark_test.go @@ -55,6 +55,16 @@ func getEntries() []logger.Entry { Add("my_key4", "my_value4"). Add("my_key5", "my_value5"), }, + { + Message: "test message", + Level: logger.WarningLevel, + Context: logger.NewContext(). + Add("my_key", "my_value"). + Add("my_key2", "my_value2"). + Add("my_key3", "my_value3"). + Add("my_key4", "my_value4"). + Add("my_key5", "my_value5"), + }, } } diff --git a/middleware/placeholder.go b/middleware/placeholder.go index c1dd946..b0797ca 100644 --- a/middleware/placeholder.go +++ b/middleware/placeholder.go @@ -10,7 +10,7 @@ import ( func Placeholder() logger.MiddlewareInterface { return func(handler logger.HandlerInterface) logger.HandlerInterface { return func(entry logger.Entry) error { - if entry.Context != nil { + if entry.Context != nil && strings.Contains(entry.Message, "%") { msg := entry.Message for n, f := range *entry.Context { msg = strings.Replace(msg, "%"+n+"%", f.String(), -1)