From 7dca0174173940d397143cb5d31e7290e27f02e5 Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Fri, 28 May 2021 18:33:44 +0430 Subject: [PATCH 1/4] Use ValueStringBuilder in HttpLogging Middleware --- src/Middleware/HttpLogging/src/HttpRequestLog.cs | 3 +-- src/Middleware/HttpLogging/src/HttpResponseLog.cs | 2 +- .../HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Middleware/HttpLogging/src/HttpRequestLog.cs b/src/Middleware/HttpLogging/src/HttpRequestLog.cs index 2dd608e4c32e..d215a6b02b50 100644 --- a/src/Middleware/HttpLogging/src/HttpRequestLog.cs +++ b/src/Middleware/HttpLogging/src/HttpRequestLog.cs @@ -37,8 +37,7 @@ public override string ToString() { if (_cachedToString == null) { - // TODO use string.Create instead of a StringBuilder here. - var builder = new StringBuilder(); + var builder = new ValueStringBuilder(); var count = _keyValues.Count; builder.Append("Request:"); builder.Append(Environment.NewLine); diff --git a/src/Middleware/HttpLogging/src/HttpResponseLog.cs b/src/Middleware/HttpLogging/src/HttpResponseLog.cs index a82219f5d143..5d673ae10a24 100644 --- a/src/Middleware/HttpLogging/src/HttpResponseLog.cs +++ b/src/Middleware/HttpLogging/src/HttpResponseLog.cs @@ -37,7 +37,7 @@ public override string ToString() { if (_cachedToString == null) { - var builder = new StringBuilder(); + var builder = new ValueStringBuilder(); var count = _keyValues.Count; builder.Append("Response:"); builder.Append(Environment.NewLine); diff --git a/src/Middleware/HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj b/src/Middleware/HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj index 836949427bf6..94b4382a358d 100644 --- a/src/Middleware/HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj +++ b/src/Middleware/HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj @@ -6,6 +6,7 @@ $(DefaultNetCoreTargetFramework) true + true true false enable @@ -17,6 +18,6 @@ + - From 47cd1733232f64009f2b647222a2bc005325e61a Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Fri, 28 May 2021 21:10:52 +0430 Subject: [PATCH 2/4] Fix build --- src/Middleware/HttpLogging/src/HttpRequestLog.cs | 4 ++-- src/Middleware/HttpLogging/src/HttpResponseLog.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Middleware/HttpLogging/src/HttpRequestLog.cs b/src/Middleware/HttpLogging/src/HttpRequestLog.cs index d215a6b02b50..74c1b55a90a8 100644 --- a/src/Middleware/HttpLogging/src/HttpRequestLog.cs +++ b/src/Middleware/HttpLogging/src/HttpRequestLog.cs @@ -47,7 +47,7 @@ public override string ToString() var kvp = _keyValues[i]; builder.Append(kvp.Key); builder.Append(": "); - builder.Append(kvp.Value); + builder.Append(kvp.Value?.ToString()); builder.Append(Environment.NewLine); } @@ -56,7 +56,7 @@ public override string ToString() var kvp = _keyValues[count - 1]; builder.Append(kvp.Key); builder.Append(": "); - builder.Append(kvp.Value); + builder.Append(kvp.Value?.ToString()); } _cachedToString = builder.ToString(); diff --git a/src/Middleware/HttpLogging/src/HttpResponseLog.cs b/src/Middleware/HttpLogging/src/HttpResponseLog.cs index 5d673ae10a24..abc361c026a4 100644 --- a/src/Middleware/HttpLogging/src/HttpResponseLog.cs +++ b/src/Middleware/HttpLogging/src/HttpResponseLog.cs @@ -47,7 +47,7 @@ public override string ToString() var kvp = _keyValues[i]; builder.Append(kvp.Key); builder.Append(": "); - builder.Append(kvp.Value); + builder.Append(kvp.Value?.ToString()); builder.Append(Environment.NewLine); } @@ -56,7 +56,7 @@ public override string ToString() var kvp = _keyValues[count - 1]; builder.Append(kvp.Key); builder.Append(": "); - builder.Append(kvp.Value); + builder.Append(kvp.Value?.ToString()); } _cachedToString = builder.ToString(); From 3da2cb05c65549474202d6d6b0565f9f52c965ca Mon Sep 17 00:00:00 2001 From: Kahbazi Date: Sat, 19 Jun 2021 23:54:16 +0430 Subject: [PATCH 3/4] Add initial capacity for ValueStringBuilder --- src/Middleware/HttpLogging/src/HttpRequestLog.cs | 2 +- src/Middleware/HttpLogging/src/HttpResponseLog.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Middleware/HttpLogging/src/HttpRequestLog.cs b/src/Middleware/HttpLogging/src/HttpRequestLog.cs index 74c1b55a90a8..b041ceeb1009 100644 --- a/src/Middleware/HttpLogging/src/HttpRequestLog.cs +++ b/src/Middleware/HttpLogging/src/HttpRequestLog.cs @@ -37,7 +37,7 @@ public override string ToString() { if (_cachedToString == null) { - var builder = new ValueStringBuilder(); + var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Request:"); builder.Append(Environment.NewLine); diff --git a/src/Middleware/HttpLogging/src/HttpResponseLog.cs b/src/Middleware/HttpLogging/src/HttpResponseLog.cs index abc361c026a4..f83ddb431753 100644 --- a/src/Middleware/HttpLogging/src/HttpResponseLog.cs +++ b/src/Middleware/HttpLogging/src/HttpResponseLog.cs @@ -37,7 +37,7 @@ public override string ToString() { if (_cachedToString == null) { - var builder = new ValueStringBuilder(); + var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Response:"); builder.Append(Environment.NewLine); From 266e6fb6d9578c2112c70af8318024d596181e1a Mon Sep 17 00:00:00 2001 From: Brennan Date: Wed, 30 Jun 2021 15:10:42 -0700 Subject: [PATCH 4/4] Apply suggestions from code review --- src/Middleware/HttpLogging/src/HttpRequestLog.cs | 1 + src/Middleware/HttpLogging/src/HttpResponseLog.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Middleware/HttpLogging/src/HttpRequestLog.cs b/src/Middleware/HttpLogging/src/HttpRequestLog.cs index b041ceeb1009..481b42cfebf1 100644 --- a/src/Middleware/HttpLogging/src/HttpRequestLog.cs +++ b/src/Middleware/HttpLogging/src/HttpRequestLog.cs @@ -37,6 +37,7 @@ public override string ToString() { if (_cachedToString == null) { + // Use 2kb as a rough average size for request headers var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Request:"); diff --git a/src/Middleware/HttpLogging/src/HttpResponseLog.cs b/src/Middleware/HttpLogging/src/HttpResponseLog.cs index f83ddb431753..fbc9ab19e19f 100644 --- a/src/Middleware/HttpLogging/src/HttpResponseLog.cs +++ b/src/Middleware/HttpLogging/src/HttpResponseLog.cs @@ -37,6 +37,7 @@ public override string ToString() { if (_cachedToString == null) { + // Use 2kb as a rough average size for response headers var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Response:");