

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurez la journalisation pour les applications .NET dans Amazon CloudWatch Logs en utilisant NLog
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog"></a>

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

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

Ce modèle décrit comment utiliser le framework de journalisation NLog open source pour enregistrer l'utilisation des applications .NET et les événements dans [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). Dans la CloudWatch console, vous pouvez consulter les messages du journal de l'application quasiment en temps réel. Vous pouvez également configurer [des métriques et des](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) [alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) pour vous avertir en cas de dépassement d'un seuil de métrique. À l'aide CloudWatch d'Application Insights, vous pouvez consulter des tableaux de bord automatisés ou personnalisés qui indiquent les problèmes potentiels liés aux applications surveillées. CloudWatch Application Insights est conçu pour vous aider à isoler rapidement les problèmes récurrents liés à vos applications et à votre infrastructure.

Pour écrire des messages de journal dans CloudWatch Logs, vous devez ajouter le `AWS.Logger.NLog` NuGet package au projet .NET. Ensuite, vous mettez à jour le `NLog.config` fichier pour utiliser CloudWatch Logs comme cible.

## Conditions préalables et limitations
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Une application Web ou console .NET qui :
  + Utilise les versions .NET Framework ou .NET Core prises en charge. Pour plus d'informations, consultez la section *Versions du produit*.
  + Utilisée NLog pour envoyer des données de journal à Application Insights.
+ Autorisations permettant de créer un rôle IAM pour un service AWS. Pour plus d'informations, consultez la section [Autorisations relatives aux rôles de service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#id_roles_create_service-permissions).
+ Autorisations permettant de transmettre un rôle à un service AWS. Pour plus d'informations, consultez la section [Octroi d'autorisations à un utilisateur pour transférer un rôle à un service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).

**Versions du produit**
+ .NET Framework version 3.5 ou ultérieure
+ Versions .NET Core 1.0.1, 2.0.0 ou ultérieures

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

**Pile technologique cible**
+ NLog
+ Amazon CloudWatch Logs

**Architecture cible**

![\[Schéma d'architecture de l' NLog écriture des données de journal pour une application .NET sur Amazon ClodWatch Logs.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)


1. L'application .NET écrit les données du journal dans le framework de NLog journalisation.

1. NLog écrit les données du journal dans CloudWatch Logs.

1. Vous utilisez des CloudWatch alarmes et des tableaux de bord personnalisés pour surveiller l'application .NET.

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

**Services AWS**
+ [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) vous aide à observer l'état de vos applications et des ressources AWS sous-jacentes.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) vous aide à centraliser les journaux de tous vos systèmes, applications et services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
+ Les [outils AWS pour PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) sont un ensemble de PowerShell modules qui vous aident à créer des scripts pour des opérations sur vos ressources AWS à partir de la ligne de PowerShell commande.

**Autres outils**
+ [Bûcheron. NLog](https://www.nuget.org/packages/AWS.Logger.NLog)est une NLog cible qui enregistre les données du journal dans CloudWatch Logs.
+ [NLog](https://nlog-project.org/)est un framework de journalisation open source pour les plateformes .NET qui vous permet d'écrire des données de journal sur des cibles, telles que des bases de données, des fichiers journaux ou des consoles.
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)est un programme d'automatisation et de gestion de configuration Microsoft qui s'exécute sous Windows, Linux et macOS.
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2022) est un environnement de développement intégré (IDE) qui inclut des compilateurs, des outils de complétion de code, des concepteurs graphiques et d'autres fonctionnalités qui prennent en charge le développement de logiciels.

## Bonnes pratiques
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-best-practices"></a>
+ Définissez une [politique de conservation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) pour le groupe de journaux cible. Cela doit être fait en dehors de la NLog configuration. Par défaut, les données du journal sont stockées dans les CloudWatch journaux indéfiniment.
+ Respectez les [meilleures pratiques en matière de gestion des clés d'accès AWS](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html).

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

### Configurer l'accès et les outils
<a name="set-up-access-and-tools"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une politique IAM. | Suivez les instructions de la section [Création de politiques à l'aide de l'éditeur JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) dans la documentation IAM. Entrez la politique JSON suivante, qui dispose des autorisations de moindre privilège nécessaires pour permettre à Logs de lire et d'écrire des CloudWatch journaux.<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> | Administrateur AWS, AWS DevOps | 
| Créez un rôle IAM. | Suivez les instructions de la [section Création d'un rôle pour déléguer des autorisations à un service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans la documentation IAM. Sélectionnez la politique que vous avez créée précédemment. C'est le rôle que CloudWatch Logs assume pour effectuer des actions de journalisation. | Administrateur AWS, AWS DevOps | 
| Configurez les outils AWS pour PowerShell. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | AWS général | 

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


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez le NuGet package. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Développeur d’applications | 
| Configurez la cible de journalisation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html)Pour un exemple de fichier de configuration, consultez la section [Informations supplémentaires](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional) de ce modèle. Lorsque vous exécutez votre application, elle écrit NLog les messages du journal et les envoie à CloudWatch Logs. | Développeur d’applications | 

### Valider et surveiller les journaux
<a name="validate-and-monitor-logs"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Validez la journalisation. | Suivez les instructions de la section [Afficher les données de journal envoyées à CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) dans la documentation CloudWatch Logs. Vérifiez que les événements du journal sont enregistrés pour l'application .NET. Si les événements du journal ne sont pas enregistrés, consultez la section [Dépannage](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting) de ce modèle. | AWS général | 
| Surveillez la pile d'applications .NET. | Configurez la surveillance CloudWatch selon les besoins de votre cas d'utilisation. Vous pouvez utiliser [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html), [CloudWatch Metrics Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html) et [CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) pour surveiller votre charge de travail .NET. Vous pouvez également configurer des [alarmes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) afin de recevoir des alertes, et vous pouvez créer un tableau de [bord](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) personnalisé pour surveiller la charge de travail à partir d'une vue unique. | AWS général | 

## Résolution des problèmes
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Les données du journal n'apparaissent pas dans CloudWatch les journaux. | Assurez-vous que la politique IAM est attachée au rôle IAM assumé par CloudWatch Logs. Pour obtenir des instructions, consultez la section *Configurer l'accès et les outils* dans la section [Epics](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics). | 

## Ressources connexes
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-resources"></a>
+ [Utilisation de groupes de journaux et de flux](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) de CloudWatch journaux (documentation sur les journaux)
+ [Amazon CloudWatch Logs et frameworks de journalisation .NET](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) (article de blog AWS)

## Informations supplémentaires
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional"></a>

Voici un exemple de `NLog.config` fichier.

```
<?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>
```