![]() |
VOOZH | about |
dotnet add package StackSpot.Logging.Correlation --version 1.0.1
NuGet\Install-Package StackSpot.Logging.Correlation -Version 1.0.1
<PackageReference Include="StackSpot.Logging.Correlation" Version="1.0.1" />
<PackageVersion Include="StackSpot.Logging.Correlation" Version="1.0.1" />Directory.Packages.props
<PackageReference Include="StackSpot.Logging.Correlation" />Project file
paket add StackSpot.Logging.Correlation --version 1.0.1
#r "nuget: StackSpot.Logging.Correlation, 1.0.1"
#:package StackSpot.Logging.Correlation@1.0.1
#addin nuget:?package=StackSpot.Logging.Correlation&version=1.0.1Install as a Cake Addin
#tool nuget:?package=StackSpot.Logging.Correlation&version=1.0.1Install as a Cake Tool
Componente projetado para complementar o log da aplicação com CorrelationId.
StackSpot.Logging.Correlation ao seu projeto.dotnet add package StackSpot.Logging.Correlation
Quando executar na máquina local, você pode configurar as variáveis de ambientes no arquivo launchSettings.json.
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"Sample.WebApi": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "sample",
"environmentVariables": {
"APP_NAME": "MyAppName",
"LOG_LEVEL": "INFO",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5000"
}
}
}
Você pode configurar as variáveis no arquivo appsettings.json.
{
"AppName": "MyAppName",
"LogOptions": {
"LogLevel": "Info"
}
}
IServiceCollection via services.AddLogger() no Startup da aplicação ou Program.Utilizando váriavel de ambiente
services.AddLogger()
.WithCorrelation();
Utilizando appsettings.json
services.AddLogger(Configuration)
.WithCorrelation();
Estendemos os métodos do ILogger<> transformado o output, adicionalmente estamos provendo duas sobrecargas novas para suportar TAGs e log de Objetos no campo Data.
[ApiController]
[Route("[controller]")]
public class SampleController : ControllerBase
{
private readonly ILogger<SampleController> _logger;
public SampleController(ILogger<SampleController> logger)
{
_logger = logger;
}
[HttpGet()]
public async Task<IActionResult> Get()
{
var someEntity = new SampleEntity();
_logger.LogDebug("My DEBUG Log Message", someEntity, "Tag01", "Tag02");
return Ok();
}
}
Fornecemos uma aplicação simples de exemplo, verifique a pasta /src/sample deste repositório.
Debug
_logger.LogDebug("My DEBUG Log Message");
_logger.LogDebug("My DEBUG Log Message", "Tag01", "Tag02");
_logger.LogDebug("My DEBUG Log Message", someEntity, "Tag01", "Tag02");
Info
_logger.LogInformation("My INFO Log Message");
_logger.LogInformation("My INFO Log Message", "Tag01", "Tag02");
_logger.LogInformation("My INFO Log Message", someEntity, "Tag01", "Tag02");
Warning
_logger.LogWarning("My WARNING Log Message");
_logger.LogWarning("My WARNING Log Message", "Tag01", "Tag02");
_logger.LogWarning("My WARNING Log Message", someEntity, "Tag01", "Tag02");
Error
_logger.LogError("My ERROR Log Message");
_logger.LogError("My ERROR Log Message", "Tag01", "Tag02");
_logger.LogError("My ERROR Log Message", someEntity, "Tag01", "Tag02");
Fatal
_logger.LogFatal("My ERROR Log Message");
_logger.LogFatal("My ERROR Log Message", "Tag01", "Tag02");
_logger.LogFatal("My ERROR Log Message", someEntity, "Tag01", "Tag02");
Mostramos abaixo o output completo preenchido com informações do dotnet.
{
"timeStamp": "2021-04-06T14:50:33.6610795Z",
"appName": "MyAppName",
"message": "An unhandled exception has occurred while executing the request.",
"logger": "Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware",
"level": "ERROR",
"tags": ["Tag01", "Tag02"],
"data": {
"field1": "Test01",
"field2": "Test02"
},
"exception": {
"name": "DivideByZeroException",
"message": "Attempted to divide by zero.",
"stackTrace": " at Sample.WebApi.Controllers.SampleController.Get() in ..."
},
"context": {
"correlationId": "614bc03a1eab685315a897fe1405a935"
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 is compatible. net5.0-windows net5.0-windows was computed. net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 1.0.1 | 7,142 | 4/18/2022 | 1.0.1 is deprecated because it is no longer maintained. |
| 1.0.0 | 1,647 | 1/28/2022 | 1.0.0 is deprecated because it is no longer maintained. |