Skip to content

Commit 3ce6a78

Browse files
authored
Use ValueStringBuilder in HttpLoggingMiddleware (#33050)
1 parent 35db455 commit 3ce6a78

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

src/Middleware/HttpLogging/src/HttpRequestLog.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public override string ToString()
3737
{
3838
if (_cachedToString == null)
3939
{
40-
// TODO use string.Create instead of a StringBuilder here.
41-
var builder = new StringBuilder();
40+
// Use 2kb as a rough average size for request headers
41+
var builder = new ValueStringBuilder(2 * 1024);
4242
var count = _keyValues.Count;
4343
builder.Append("Request:");
4444
builder.Append(Environment.NewLine);
@@ -48,7 +48,7 @@ public override string ToString()
4848
var kvp = _keyValues[i];
4949
builder.Append(kvp.Key);
5050
builder.Append(": ");
51-
builder.Append(kvp.Value);
51+
builder.Append(kvp.Value?.ToString());
5252
builder.Append(Environment.NewLine);
5353
}
5454

@@ -57,7 +57,7 @@ public override string ToString()
5757
var kvp = _keyValues[count - 1];
5858
builder.Append(kvp.Key);
5959
builder.Append(": ");
60-
builder.Append(kvp.Value);
60+
builder.Append(kvp.Value?.ToString());
6161
}
6262

6363
_cachedToString = builder.ToString();

src/Middleware/HttpLogging/src/HttpResponseLog.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public override string ToString()
3737
{
3838
if (_cachedToString == null)
3939
{
40-
var builder = new StringBuilder();
40+
// Use 2kb as a rough average size for response headers
41+
var builder = new ValueStringBuilder(2 * 1024);
4142
var count = _keyValues.Count;
4243
builder.Append("Response:");
4344
builder.Append(Environment.NewLine);
@@ -47,7 +48,7 @@ public override string ToString()
4748
var kvp = _keyValues[i];
4849
builder.Append(kvp.Key);
4950
builder.Append(": ");
50-
builder.Append(kvp.Value);
51+
builder.Append(kvp.Value?.ToString());
5152
builder.Append(Environment.NewLine);
5253
}
5354

@@ -56,7 +57,7 @@ public override string ToString()
5657
var kvp = _keyValues[count - 1];
5758
builder.Append(kvp.Key);
5859
builder.Append(": ");
59-
builder.Append(kvp.Value);
60+
builder.Append(kvp.Value?.ToString());
6061
}
6162

6263
_cachedToString = builder.ToString();

src/Middleware/HttpLogging/src/Microsoft.AspNetCore.HttpLogging.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
</Description>
77
<TargetFramework>$(DefaultNetCoreTargetFramework)</TargetFramework>
88
<IsAspNetCoreApp>true</IsAspNetCoreApp>
9+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
910
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1011
<IsPackable>false</IsPackable>
1112
<Nullable>enable</Nullable>
@@ -20,5 +21,4 @@
2021
<Compile Include="$(SharedSourceRoot)Buffers\**\*.cs" LinkBase="Internal\" />
2122
<Compile Include="$(SharedSourceRoot)ValueStringBuilder\**\*.cs" />
2223
</ItemGroup>
23-
2424
</Project>

0 commit comments

Comments
 (0)