

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configure o registro em log para aplicativos.NET no Amazon CloudWatch Logs usando NLog
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog"></a>

*Bibhuti Sahu e Rob Hill (AWS), Amazon Web Services*

## Resumo
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-summary"></a>

Esse padrão descreve como usar a estrutura de registro de NLog código aberto para registrar o uso e os eventos do aplicativo.NET no [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). No CloudWatch console, você pode ver as mensagens de log do aplicativo quase em tempo real. Você também pode configurar [métricas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) e configurar [alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) para notificá-lo se um limite métrico for excedido. Usando o CloudWatch Application Insights, você pode visualizar painéis automatizados ou personalizados que mostram possíveis problemas para os aplicativos monitorados. CloudWatch O Application Insights foi projetado para ajudá-lo a isolar rapidamente os problemas contínuos com seus aplicativos e infraestrutura.

Para gravar mensagens de log em CloudWatch Logs, você adiciona o `AWS.Logger.NLog` NuGet pacote ao projeto.NET. Em seguida, você atualiza o `NLog.config` arquivo para usar o CloudWatch Logs como destino.

## Pré-requisitos e limitações
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um aplicativo web ou de console do.NET que:
  + Usa as versões compatíveis da .NET Framework ou do .NET Core. Para obter mais informações, consulte *Versões de produto*.
  + Usa NLog para enviar dados de log para o Application Insights.
+ Permissões para criar um perfil do IAM para um serviço da AWS. Para obter mais informações, consulte [Permissões de perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#id_roles_create_service-permissions).
+ Permissões para transmitir um perfil para um serviço da AWS. Para obter mais informações, consulte [Conceder a um usuário permissões para transmitir uma função a um produto da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).

**Versões do produto**
+ .NET Framework versão 3.5 ou superior.
+ .NET Core versões 1.0.1, 2.0.0 ou superior

## Arquitetura
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-architecture"></a>

**Pilha de tecnologias de destino**
+ NLog
+  CloudWatch Registros da Amazon

**Arquitetura de destino**

![Diagrama de arquitetura de NLog gravação de dados de log para um aplicativo.NET no Amazon ClodWatch Logs.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)


1. O aplicativo.NET grava dados de NLog log na estrutura de registro.

1. NLog grava os dados de registro em CloudWatch Logs.

1. Você usa CloudWatch alarmes e painéis personalizados para monitorar o aplicativo.NET.

## Ferramentas
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-tools"></a>

**Serviços da AWS**
+ [O Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) ajuda você a observar a saúde de seus aplicativos e dos recursos subjacentes da AWS.
+ O [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) ajuda você a centralizar os registros de todos os seus sistemas, aplicativos e serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ As [ferramentas da AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) são um conjunto de PowerShell módulos que ajudam você a criar scripts de operações em seus recursos da AWS a partir da linha de PowerShell comando.

**Outras ferramentas**
+ [Lenhador. NLog](https://www.nuget.org/packages/AWS.Logger.NLog)é um NLog destino que registra dados de registro no CloudWatch Logs.
+ [NLog](https://nlog-project.org/)é uma estrutura de registro de código aberto para plataformas do.NET que ajuda você a gravar dados de log em destinos, como bancos de dados, arquivos de log ou consoles.
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)é um programa de gerenciamento de automação e configuração da Microsoft executado em Windows, Linux e macOS.
+ O [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2022) é um ambiente de desenvolvimento integrado (IDE) que inclui compiladores, ferramentas de preenchimento de código, designers gráficos e outros atributos compatíveis com o desenvolvimento de software.

## Práticas recomendadas
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-best-practices"></a>
+ Defina uma [política de retenção](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) para o grupo de logs de destino. Isso deve ser feito fora da NLog configuração. Por padrão, os dados de registro são armazenados em CloudWatch Registros indefinidamente.
+ Siga as [Práticas recomendadas de gerenciamento de chaves de acesso da AWS](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html).

## Épicos
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics"></a>

### Configurar o acesso e ferramentas
<a name="set-up-access-and-tools"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma política do IAM. | Siga as instruções em [Como criar políticas usando o editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) na documentação do IAM. Insira a política JSON a seguir, que tem as permissões de privilégios mínimos necessárias para permitir que os registros leiam e gravem CloudWatch registros.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:CreateLogGroup",<br />                "logs:CreateLogStream",<br />                "logs:GetLogEvents",<br />                "logs:PutLogEvents",<br />                "logs:DescribeLogGroups",<br />                "logs:DescribeLogStreams",<br />                "logs:PutRetentionPolicy"<br />            ],<br />            "Resource": [<br />                "*"<br />            ]<br />        }<br />    ]<br />}</pre> | Administrador da AWS, AWS DevOps | 
| Criar um perfil do IAM. | Para obter instruções, consulte [Criar um perfil para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) na documentação do IAM. Selecione a política que você criou anteriormente. Essa é a função que CloudWatch Logs assume para realizar ações de registro. | Administrador da AWS, AWS DevOps | 
| Configure o AWS Tools para PowerShell. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | AWS geral | 

### Configure NLog
<a name="configure-nlog"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Instale o NuGet pacote. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Desenvolvedor de aplicativos | 
| Configurar o destino de registro em log. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html)Para obter um exemplo de arquivo de configuração, consulte a seção [Informações adicionais](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional) deste padrão. Quando você executar seu aplicativo, NLog gravará as mensagens de log e as enviará para o CloudWatch Logs. | Desenvolvedor de aplicativos | 

### Validar e monitorar logs
<a name="validate-and-monitor-logs"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Validar o registro em log. | Siga as instruções em [Exibir dados de registro enviados para CloudWatch Registros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) na documentação de CloudWatch Registros. Valide se os eventos de logs estão sendo registrados para o aplicativo.NET. Se os eventos de log não estiverem sendo registrados, consulte a seção [Solução de problemas](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting) nesse padrão. | AWS geral | 
| Monitore a pilha de aplicativos .NET. | Configure o monitoramento CloudWatch conforme necessário para seu caso de uso. Você pode usar o [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html), o [CloudWatch Metrics Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html) e o [CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) para monitorar sua carga de trabalho.NET. Você também pode configurar [alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) para receber alertas e criar um [painel](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) personalizado para monitorar a workload a partir de uma única visualização. | AWS geral | 

## Solução de problemas
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Os dados do registro não aparecem nos CloudWatch registros. | Certifique-se de que a política do IAM esteja vinculada à função do IAM que o CloudWatch Logs assume. Para obter instruções, consulte a seção *Configurar acesso e ferramentas* na seção [Épicos](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics). | 

## Recursos relacionados
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-resources"></a>
+ [Trabalhando com grupos de registros e fluxos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) de CloudWatch registros (documentação de registros)
+ [Amazon CloudWatch Logs e .NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) (publicação no blog da AWS)

## Mais informações
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional"></a>

Veja a seguir um exemplo de arquivo `NLog.config`.

```
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
  </startup>
  <nlog>
    <extensions>
      <add assembly="NLog.AWS.Logger" />
    </extensions>
    <targets>
      <target name="aws" type="AWSTarget" logGroup="NLog.TestGroup" region="us-east-1" profile="demo"/>
    </targets>
    <rules>
      <logger name="*" minlevel="Info" writeTo="aws" />
    </rules>    
  </nlog>
</configuration>
```