

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan logging untuk aplikasi.NET di Amazon CloudWatch Logs dengan menggunakan NLog
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog"></a>

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

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

Pola ini menjelaskan cara menggunakan framework logging NLog open-source untuk mencatat penggunaan dan peristiwa aplikasi.NET di [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). Di CloudWatch konsol, Anda dapat melihat pesan log aplikasi dalam waktu dekat. Anda juga dapat mengatur [metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html) dan mengonfigurasi [alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) untuk memberi tahu Anda jika ambang batas metrik terlampaui. Menggunakan CloudWatch Application Insights, Anda dapat melihat dasbor otomatis atau kustom yang menunjukkan potensi masalah untuk aplikasi yang dipantau. CloudWatch Application Insights dirancang untuk membantu Anda dengan cepat mengisolasi masalah yang sedang berlangsung dengan aplikasi dan infrastruktur Anda.

Untuk menulis pesan CloudWatch log ke Log, Anda menambahkan `AWS.Logger.NLog` NuGet paket ke proyek.NET. Kemudian, Anda memperbarui `NLog.config` file untuk menggunakan CloudWatch Log sebagai target.

## Prasyarat dan batasan
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif.
+ Aplikasi web atau konsol .NET yang:
  + Menggunakan versi .NET Framework atau .NET Core yang didukung. Untuk informasi selengkapnya, lihat *Versi produk*.
  + Menggunakan NLog untuk mengirim data log ke Application Insights.
+ Izin untuk membuat peran IAM untuk layanan AWS. Untuk informasi selengkapnya, lihat [Izin peran layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#id_roles_create_service-permissions).
+ Izin untuk meneruskan peran ke layanan AWS. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).

**Versi produk**
+ .NET Framework versi 3.5 atau yang lebih baru
+ .NET Core versi 1.0.1, 2.0.0, atau yang lebih baru

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

**Tumpukan teknologi target**
+ NLog
+  CloudWatch Log Amazon

**Arsitektur target**

![Diagram arsitektur NLog penulisan data log untuk aplikasi.NET ke Amazon ClodWatch Logs.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/0ac9c3ad-2a28-415f-afc3-7fe3494b2b63/images/daea9f2f-7242-4ed2-843e-655d843dcfdf.png)


1. Aplikasi.NET menulis data log ke kerangka NLog logging.

1. NLog menulis data log ke CloudWatch Log.

1. Anda menggunakan CloudWatch alarm dan dasbor khusus untuk memantau aplikasi.NET.

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

**Layanan AWS**
+ [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) membantu Anda mengamati kesehatan aplikasi dan sumber daya AWS yang mendasarinya.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) membantu Anda memusatkan log dari semua sistem, aplikasi, dan layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) adalah sekumpulan PowerShell modul yang membantu Anda menjalankan skrip pada sumber daya AWS Anda dari baris PowerShell perintah.

**Alat-alat lainnya**
+ [Logger. NLog](https://www.nuget.org/packages/AWS.Logger.NLog)adalah NLog target yang mencatat data log ke CloudWatch Log.
+ [NLog](https://nlog-project.org/)adalah kerangka kerja logging open-source untuk platform.NET yang membantu Anda menulis data log ke target, seperti database, file log, atau konsol.
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)adalah program manajemen otomatisasi dan konfigurasi Microsoft yang berjalan di Windows, Linux, dan macOS.
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-studio-ide?view=vs-2022) adalah lingkungan pengembangan terintegrasi (IDE) yang mencakup kompiler, alat penyelesaian kode, desainer grafis, dan fitur lain yang mendukung pengembangan perangkat lunak.

## Praktik terbaik
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-best-practices"></a>
+ Tetapkan [kebijakan retensi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) untuk grup log target. Ini harus dilakukan di luar NLog konfigurasi. Secara default, data log disimpan di CloudWatch Log tanpa batas waktu.
+ Patuhi [praktik terbaik untuk mengelola kunci akses AWS](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html).

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

### Siapkan akses dan alat
<a name="set-up-access-and-tools"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kebijakan IAM. | Ikuti petunjuk dalam [Membuat kebijakan menggunakan editor JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) dalam dokumentasi IAM. Masukkan kebijakan JSON berikut, yang memiliki izin hak istimewa paling sedikit yang diperlukan untuk memungkinkan Log membaca dan menulis CloudWatch log.<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> | Administrator AWS, AWS DevOps | 
| Buat peran IAM. | Ikuti petunjuk dalam [Membuat peran untuk mendelegasikan izin ke layanan AWS dalam dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) IAM. Pilih kebijakan yang Anda buat sebelumnya. Ini adalah peran yang diasumsikan CloudWatch Log untuk melakukan tindakan logging. | Administrator AWS, AWS DevOps | 
| Siapkan AWS Tools untuk PowerShell. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | AWS Umum | 

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


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal NuGet paketnya. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html) | Pengembang aplikasi | 
| Konfigurasikan target logging. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog.html)Untuk contoh file konfigurasi, lihat bagian [Informasi tambahan](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-additional) dari pola ini. Ketika Anda menjalankan aplikasi Anda, NLog akan menulis pesan log dan mengirimkannya ke CloudWatch Log. | Pengembang aplikasi | 

### Validasi dan pantau log
<a name="validate-and-monitor-logs"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi logging. | Ikuti petunjuk di [Lihat data log yang dikirim ke CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData) dalam dokumentasi CloudWatch Log. Validasi bahwa peristiwa log sedang direkam untuk aplikasi.NET. Jika peristiwa log tidak direkam, lihat bagian [Pemecahan Masalah](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-troubleshooting) dalam pola ini. | AWS Umum | 
| Pantau tumpukan aplikasi.NET. | Konfigurasikan pemantauan CloudWatch sesuai kebutuhan untuk kasus penggunaan Anda. Anda dapat menggunakan [Wawasan CloudWatch Log, Wawasan CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) [Metrik, dan Wawasan CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html) [Aplikasi untuk memantau beban kerja.NET](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) Anda. Anda juga dapat mengonfigurasi [alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) sehingga Anda dapat menerima peringatan, dan Anda dapat membuat [dasbor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html) khusus untuk memantau beban kerja dari satu tampilan. | AWS Umum | 

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


| Isu | Solusi | 
| --- | --- | 
| Data log tidak muncul di CloudWatch Log. | Pastikan bahwa kebijakan IAM dilampirkan ke peran IAM yang diasumsikan oleh CloudWatch Log. Untuk petunjuk, lihat bagian *Mengatur akses dan alat* di bagian [Epik](#configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-epics). | 

## Sumber daya terkait
<a name="configure-logging-for-net-applications-in-amazon-cloudwatch-logs-by-using-nlog-resources"></a>
+ [Bekerja dengan grup log dan aliran log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) (dokumentasi CloudWatch Log)
+ [ CloudWatch Log Amazon dan Kerangka Kerja Logging .NET](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/) (postingan blog AWS)

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

Berikut ini adalah `NLog.config` file sampel.

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