diff --git a/src/Middleware/HttpLogging/src/HttpRequestLog.cs b/src/Middleware/HttpLogging/src/HttpRequestLog.cs index 2dd608e4c32e..481b42cfebf1 100644 --- a/src/Middleware/HttpLogging/src/HttpRequestLog.cs +++ b/src/Middleware/HttpLogging/src/HttpRequestLog.cs @@ -37,8 +37,8 @@ public override string ToString() { if (_cachedToString == null) { - // TODO use string.Create instead of a StringBuilder here. - var builder = new StringBuilder(); + // Use 2kb as a rough average size for request headers + var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Request:"); builder.Append(Environment.NewLine); @@ -48,7 +48,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); } @@ -57,7 +57,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 a82219f5d143..fbc9ab19e19f 100644 --- a/src/Middleware/HttpLogging/src/HttpResponseLog.cs +++ b/src/Middleware/HttpLogging/src/HttpResponseLog.cs @@ -37,7 +37,8 @@ public override string ToString() { if (_cachedToString == null) { - var builder = new StringBuilder(); + // Use 2kb as a rough average size for response headers + var builder = new ValueStringBuilder(2 * 1024); var count = _keyValues.Count; builder.Append("Response:"); builder.Append(Environment.NewLine); @@ -47,7 +48,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 +57,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/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 @@ + -