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 @@
+
-