VOOZH about

URL: https://www.nuget.org/packages/StackSpot.Logging/

⇱ NuGet Gallery | StackSpot.Logging 1.0.1




👁 Image
StackSpot.Logging 1.0.1

dotnet add package StackSpot.Logging --version 1.0.1
 
 
NuGet\Install-Package StackSpot.Logging -Version 1.0.1
 
 
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="StackSpot.Logging" Version="1.0.1" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="StackSpot.Logging" Version="1.0.1" />
 
Directory.Packages.props
<PackageReference Include="StackSpot.Logging" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add StackSpot.Logging --version 1.0.1
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: StackSpot.Logging, 1.0.1"
 
 
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package StackSpot.Logging@1.0.1
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=StackSpot.Logging&version=1.0.1
 
Install as a Cake Addin
#tool nuget:?package=StackSpot.Logging&version=1.0.1
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

StackSpot logging

Este componente foi projetado para padronizar o log das aplicações.

Versões suportadas

  • net5.0
  • net6.0

Uso

1. Adicione o pacote NuGet StackSpot.Logging ao seu projeto.
dotnet add package StackSpot.Logging

Fornecemos pacotes adicionais que permitem realizar o logging do SpanId, TraceId e CorrelationId.

dotnet add package StackSpot.Logging.OpenTracing
dotnet add package StackSpot.Logging.Correlation
dotnet add package StackSpot.Logging.XRay
2. Configure as variáveis.
  • APP_NAME - nome da aplicação - Campo Obrigatório
  • LOG_LEVEL - level de log, valores: DEBUG, INFO, WARN, ERROR, FATAL.

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"
 }
}
3. Adicione ao seu IServiceCollection via services.AddLogger() no Startup da aplicação ou Program.

Utilizando váriavel de ambiente

services.AddLogger();

Utilizando appsettings.json

services.AddLogger(Configuration);

Caso precise de um log completo com informações de contexto, instale os pacotes adicionais e utilize a configuração abaixo:

Exemplo OpenTracing:

services.AddLogger()
 .WithOpenTracing()
 .WithCorrelation();

Exemplo XRay:

services.AddLogger()
 .WithXRayTraceId()
 .WithCorrelation();

Implementação

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();
 }
}

Sobrecargas disponíveis.

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");

Output completo

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": {
 "spanId": "1af157b8bee48886",
 "traceId": "1af157b8bee48886",
 "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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on StackSpot.Logging:

Package Downloads
StackSpot.Logging.Correlation

Componente projetado para complementar o log da aplicação com CorrelationId.

StackSpot.Logging.OpenTracing

Componente projetado para complementar o log da aplicação com tracing

StackSpot.Logging.XRay

Componente projetado para complementar o log da aplicação com tracing

GitHub repositories

This package is not used by any popular GitHub repositories.