Blazor - Usando o Serilog


Hoje veremos como usar o Serilog em uma aplicação Blazor Server usando o VS 2019 Community.

Eu já apresentei o Serilog neste artigo: C# - Usando o Serilog - Macoratti  e hoje veremos como usar o Serilog em um projeto Blazor do lado do servidor.

Para usar os recursos do Serilog no Blazor precisamos instalar o pacote Serilog.AspNetCore no projeto.

Assim vamos criar um projeto Blazor Server padrão que possui os seguintes recursos:

  1. Blazor Server :  Nesse modelo de hospedagem, o aplicativo é executado no servidor a partir de um aplicativo ASP.NET Core. Atualizações da interface do usuário, manipulação de eventos e chamadas JavaScript são tratadas em uma conexão SignalR. Esse modal de execução está disponível na versão estável atual do .Net Core (3.1) e o modelo de projeto para criar o aplicativo Blazor Server é lançado com o Visual Studio 2019 16.4.

Recursos usados:

Criando o projeto Blazor no VS Community 2019

Abra o VS 2019 Community (versão mínima 16.4.x) e selecione a opção Create a New Project;

A seguir selecione a opção Blazor app e clique em next;

Informe o nome do projeto :  Blazor_Serilog, a localização e clique em Create;

Basta selecionar o template e clicar no botão Create.   

A seguir vamos incluir a biblioteca Serilog no projeto via Nuget:



Agora precisamos definir a configuração do Serilog no projeto e para isso precisamos configurar o sink ou coletor invocando o método WriteTo.File na configuração do criador de logs no método Main da classe Program.

A seguir precisamos definir o fornecimento do log Serilog usando o método : UseSerilog da classe SerilogHostBuilderExtensions.

Abaixo temos o código que configura o Serilog no projeto Blazor padrão criado para exemplo:



A seguir já podemos testar e para isso vamos incluir o código para registro de log no método IncrementCount do componente Counter.razor do projeto padrão:

Podemos executar o projeto e após acionar o componente Counter e clicar algumas vezes no botão, ao abrir o arquivo log.txt na pasta c:\logs iremos obter o resultado abaixo:

O Serilog fornece vários métodos de extensão para registrar dados e o framework Serilog registra os dados de log em arquivo se o nível de log do método da extensão for maior que o nível mínimo de log.

O valor padrão do nível mínimo de log é "Verbose", e, se não especificarmos o nível mínimo de log, o Serilog usará o nível de log padrão e registrará todos os dados.

Podemos ainda definir outras configurações como o intervalo de rolage, o formato do arquivo texto, o caminho do arquivo, o nível mínimo de log, etc.

O Serilog nos permite fazer a configuração do log, como definir o intervalo de rolagem, o formato do arquivo de texto, o caminho do arquivo, o nível mínimo de log, etc., e, para isso podemos usar o método WriteTo.File.

Abaixo temos um exemplo usando outras definições de configuração:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Core;
using System;
namespace Blazor_Serilog
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var levelSwitch = new LoggingLevelSwitch();
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.ControlledBy(levelSwitch)
                .Enrich.WithProperty("InstanceId", Guid.NewGuid().ToString("n"))
                .WriteTo.File(@"C:\logs\log.txt")
                .CreateLogger();
            Log.Information("Iniciando o Serilog...");
            try
            {
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Ocorreu um erro durante a criação do host WASM");
                throw;
            }
        }
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .UseSerilog()
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

Executando novamente o projeto e após fazer alguns testes ao abrir o arquivo log.txt teremos o resultado a seguir:

Com isso fiz uma introdução bem básica sobre como usar o Serilog no Blazor. Voltaremos ao assunto em outros artigos.

Pegue o projeto aqui: Blazor_Serilog.zip  (sem as referências)

Porque a lei foi dada por Moisés; a graça e a verdade vieram por Jesus Cristo.
Deus nunca foi visto por alguém. O Filho unigênito, que está no seio do Pai, esse o revelou.
João 1:17,18

Referências:


José Carlos Macoratti