perf(logging): use AsSpan for substring in LogCurl to reduce allocations

- Replaced `.Substring(0, maxLength)` with `AsSpan(0, maxLength)` and `string.Concat`.
- Improves performance by avoiding temporary string allocations when truncating cURL output.
- Maintains existing logging behavior with truncated cURL strings.
This commit is contained in:
tekh 2025-08-18 16:49:49 +02:00
parent e9a7ef910f
commit 66cfe0525c

View File

@ -15,10 +15,10 @@ public static class LogExtensions
int maxLength = 1000,
LogLevel logLevel = LogLevel.Information)
{
var curl = client.GenerateCurlInString(
var curl = string.Concat(client.GenerateCurlInString(
request,
config
).Substring(0, maxLength) + "...[truncated]";
).AsSpan(0, maxLength), "...[truncated]");
logger?.Log(logLevel, "{curl}", curl);
}
@ -33,13 +33,13 @@ public static class LogExtensions
int maxLength = 1000,
LogLevel logLevel = LogLevel.Information)
{
var curl = client.GenerateCurlInString(
var curl = string.Concat(client.GenerateCurlInString(
method,
uri,
headers,
content,
config
).Substring(0, maxLength) + "...[truncated]";
).AsSpan(0, maxLength), "...[truncated]");
logger?.Log(logLevel, "{curl}", curl);
}
@ -54,13 +54,13 @@ public static class LogExtensions
int maxLength = 1000,
LogLevel logLevel = LogLevel.Information)
{
var curl = client.GenerateCurlInString(
var curl = string.Concat(client.GenerateCurlInString(
method,
uri,
headers,
content,
config
).Substring(0, maxLength) + "...[truncated]";
).AsSpan(0, maxLength), "...[truncated]");
logger?.Log(logLevel, "{curl}", curl);
}
}