> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Criando logs com o Serilog - parte 4
- URL: https://www.azurebrasil.cloud/blog/criando-logs-com-o-serilog-parte-4/
- Published: 2024-03-21T12:38:52.000Z
- Updated: 2024-03-21T12:38:52.000Z
- Author: Talles Valiatti

Essa é a última parte da [série de posts](https://www.azurebrasil.cloud/criando-logs-com-serilog-e-seq/) com foco no estudo do [Serilog](https://serilog.net/?ref=azurebrasil.cloud) e seus [sinks](https://github.com/serilog/serilog/wiki/Provided-Sinks?ref=azurebrasil.cloud)!

- [Parte 1](https://www.azurebrasil.cloud/criando-logs-com-serilog-e-seq/);
- [Parte 2](https://www.azurebrasil.cloud/criando-logs-com-o-serilog-parte-2/);
- [Parte 3](https://www.azurebrasil.cloud/criando-logs-com-o-serilog-parte-3/).

Nessa parte da série, vamos enviar os logs para o [ELK Stack](https://www.elastic.co/pt/elastic-stack?ref=azurebrasil.cloud)! Vamos utilizar o ELK por meio do [Elastic Cloud](https://www.elastic.co/pt/cloud?ref=azurebrasil.cloud), facilitando o processo de criação dos recursos.

Vamos acessar o seguinte site e iniciar um período de avaliação gratuita. Os preços do Elastick Cloud podem ser conferidos [aqui](https://www.elastic.co/pt/pricing?ref=azurebrasil.cloud).

````
https://www.elastic.co
```

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.04.45.png)

Após o cadastro, podemos criar um [*deployment*](https://www.elastic.co/guide/en/cloud/current/ec-create-deployment.html?ref=azurebrasil.cloud)*!*

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.05.03.png)

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.05.13.png)

Nesse post, chamei o *deployment* de "*My app"* e ele está localizado na região *us-central-1* da [GCP](https://cloud.google.com/?hl=pt-BR&ref=azurebrasil.cloud). 

Com isso, podemos ver que temos acesso a todas as ferramentas oferecidas pelo Elastic Cloud.

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.05.34.png)

Dentro do menu de *Search,* já podemos copiar o *Cloud ID* do seu *deployment,* vamos utilizá-lo logo mais. 

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.08.15.png)

Além disso, precisamos criar uma chave para servir como segredo. Vamos copiar o valor "*Encoded"* gerado*.*

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.12.07.png)

Essa são todas as informações necessárias para enviarmos os logs do Serilog para o Elastic Cloud.

Voltando ao nosso projeto, vamos adicionar o seguinte pacote NuGet:

```
dotnet add package Elastic.Serilog.Sinks
```

Na configuração do Serilog, iremos adicionar o seguinte trecho de código para enviarmos os logs para o *deployment* do ELKcriado anteriormente.

```
 // Add ELK 
      loggerConfig.WriteTo.ElasticCloud(
          cloudId:"<your-cloud-id>",
          apiKey: "<your-encoded-api-key>",
          opts =>
          {
              opts.DataStream = new DataStreamName("my-logs", "app", "prod");
              opts.BootstrapMethod = BootstrapMethod.Failure;
              opts.ConfigureChannel = channelOpts =>
              {
                  channelOpts.BufferOptions = new BufferOptions
                  {
                      ExportMaxConcurrency = 10
                  };
              };
          });
```

Com isso, podemos executar novamente a chamada HTTP.

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.17.35.png)

De volta a plataforma do Elastic Cloud, precisamos criar um [*data view*](https://www.elastic.co/guide/en/kibana/current/data-views.html?ref=azurebrasil.cloud)*,* utilizado o[*data stream*](https://www.elastic.co/guide/en/elasticsearch/reference/current/data-streams.html?ref=azurebrasil.cloud)que foi criado após o envio dos logs

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.16.15.png)

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.18.13.png)

Com isso, já podemos ver os logs gerados!

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.18.36.png)

Podemos melhorar a visualização, exibindo apenas os campos desejados, que nesse caso, são as mensagens dos logs.

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.19.47.png)

Além disso, podemos expandir o log, para visualizar todos os dados relacionados a esse registro. 

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.20.35.png)

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2024/03/Screen-Shot-2024-03-05-at-15.20.41.png)

Recomendo uma leitura profunda da [documentação oficial do ELK](https://www.elastic.co/guide/index.html?ref=azurebrasil.cloud)!

E assim fechamos essa série de posts! Você já pode baixar o projeto por esse [link](https://github.com/TallesValiatti/LoggingSerilogSeq?ref=azurebrasil.cloud), e não esquece de me seguir no [LinkedIn](https://github.com/TallesValiatti/LoggingSerilogSeq?ref=azurebrasil.cloud)!

Até a próxima, abraços!