SanitizedHttpClientLogger 0.0.3
dotnet add package SanitizedHttpClientLogger --version 0.0.3
NuGet\Install-Package SanitizedHttpClientLogger -Version 0.0.3
<PackageReference Include="SanitizedHttpClientLogger" Version="0.0.3" />
paket add SanitizedHttpClientLogger --version 0.0.3
#r "nuget: SanitizedHttpClientLogger, 0.0.3"
// Install SanitizedHttpClientLogger as a Cake Addin #addin nuget:?package=SanitizedHttpClientLogger&version=0.0.3 // Install SanitizedHttpClientLogger as a Cake Tool #tool nuget:?package=SanitizedHttpClientLogger&version=0.0.3
How does it work
It's not possible to configure the log pattern of the Microsoft.Extensions.Http
based HttpClient
loggers. It has to be replaced.
This package replaces the default loggers with a logger that:
- Reduces the number of log statements on
HttpClient
requests from 4 to 2 - Makes sure that sensitive information like api-keys or tokens in the request-Uri can be sanitized using configurable Regex patterns
Change in logging output
Before:
info: Start processing HTTP request GET https://my.api.com/v1/status?apikey=my-secret-key
info: Sending HTTP request GET https://my.api.com/v1/status?apikey=my-secret-key
info: Received HTTP response headers after 188.6041ms - 200
info: End processing HTTP request after 188.8026ms - 200
After:
info: Sending HTTP request GET https://my.api.com/v1/status?apikey=xxx
info: Received HTTP response GET https://my.api.com/v1/status?apikey=xxx - 200 in 186.4883ms
Install
$ dotnet add package SanitizedHttpClientLogger
Usage
Via Options
services
.AddHttpClient<Worker>((_, o) =>
{
o.BaseAddress = new Uri("https://my.api.com/v1");
})
.ConfigureSanitizedLogging(o =>
// This regex pattern will match any part of a string that starts with "apikey=" (in a case-insensitive manner)
// followed by any number of characters that are not an ampersand.
o.RequestUriReplacements.Add("(?i)apikey=[^&]*", "apikey=xxx")
);
Via Configuration
{
"SanitizedHttpLoggerOptions": {
"RequestUriReplacements": {
"(?i)apikey=[^&]*": "apikey=xxx"
}
}
}
services
.AddHttpClient<Worker>((_, o) =>
{
o.BaseAddress = new Uri("https://my.api.com/v1");
})
.ConfigureSanitizedLogging(configuration);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Http (>= 8.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Stef.Validation.Options (>= 0.1.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SanitizedHttpClientLogger:
Package | Downloads |
---|---|
Freecurrency-API
This unofficial (RestEase based) client enables working with freecurrencyapi (https://freecurrencyapi.com) |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.0.3 | 408 | 3/20/2024 |
# 0.0.2 (20 March 2024)
- #2 Add SanitizedHttpClientLogger [enhancement]
The full release notes can be found here: https://github.com/StefH/SanitizedHttpLogger/blob/main/ReleaseNotes.md