Logging digunakan untuk debugging, serta untuk mengumpulkan dan menganalisis informasi kerja tentang aplikasi. Informasi ini ditulis ke file yang disebut log. File log berisi informasi sistem tentang pengoperasian aplikasi klien, misalnya, tindakan pengguna atau program.
Pada artikel ini, kami akan membahas cara menyiapkan pendataan aktivitas klien EWS menggunakan C# .NET.
- C# .NET API untuk Bekerja dengan Layanan Web MS Exchange
- Aktifkan Pencatatan Aktivitas menggunakan File App.config
- Aktifkan Pencatatan Aktivitas menggunakan File appsettings.json
- Aktifkan Log Aktivitas di Kode Program
- Contoh info file log
C# .NET API untuk Bekerja dengan Layanan Web MS Exchange
Untuk mengelola Layanan Web MS Exchange, kami akan menggunakan Aspose.Email for .NET.
Ini adalah API yang kuat yang memungkinkan akses ke berbagai layanan MS Exchange Server dengan mulus. Selain itu, ia menyediakan banyak fitur untuk mengimplementasikan aplikasi klien email.
Anda dapat mengunduh DLL API atau menginstalnya dari NuGet menggunakan perintah berikut.
PM> Install-Package Aspose.Email
Aktifkan Pencatatan Aktivitas menggunakan File App.config
Opsi ini cocok untuk aplikasi di mana app.config
adalah cara pilihan untuk menjaga konfigurasi aplikasi.
Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.
- Pertama, tambahkan file konfigurasi aplikasi ke proyek C#, jika belum ditambahkan sebelumnya.
- Kemudian, tambahkan konten berikut ke file konfigurasi.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Aspose.Email.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Aspose.Email.Properties.Settings>
<setting name="EWSDiagnosticLog" serializeAs="String">
<value>..\..\..\Log\Aspose.Email.EWS.log</value>
</setting>
<setting name="EWSDiagnosticLog_UseDate" serializeAs="String">
<value>False</value>
</setting>
</Aspose.Email.Properties.Settings>
</applicationSettings>
</configuration>
Kita dapat melihat dua bagian pengaturan:
EWSDiagnosticLog
- Menentukan jalur relatif atau absolut ke file log.EWSDiagnosticLogUseDate
- menentukan apakah akan menambahkan representasi string dari tanggal saat ini ke nama file log.
Aktifkan Pencatatan Aktivitas menggunakan File appsettings.json
Opsi ini lebih disukai untuk aplikasi .NET Core.
Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.
- Pertama, tambahkan file konfigurasi
appsettings.json
ke proyek C#, jika belum pernah ditambahkan sebelumnya. Pastikan bahwa file proyek berisi baris berikut di bagian ItemGroup:
<Content Include="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
- Kemudian, tambahkan konten berikut ke file appsettings.json.
{
"EWSDiagnosticLog": "ews.log",
"EWSDiagnosticLog_UseDate": true
}
Kita dapat melihat dua properti:
EWSDiagnosticLog
- Menentukan jalur relatif atau absolut ke file log.EWSDiagnosticLogUseDate
- menentukan apakah akan menambahkan representasi string dari tanggal saat ini ke nama file log.
Aktifkan Log Aktivitas di Kode Program
Anda juga dapat mengaktifkan log langsung dalam kode. Catatan: meskipun Anda telah mengaktifkan pembuatan log dengan menggunakan file konfigurasi, opsi ini akan diterapkan.
Berikut adalah langkah-langkah untuk mengaktifkan login EWSClient di C#.
- Pertama, buat EWSClient.
- Kedua, setel jalur ke file log menggunakan properti LogFileName.
- Terakhir, setel properti UseDateInLogFileName jika diperlukan.
using (var client = EWSClient.GetEWSClient("https://outlook.office365.com/EWS/Exchange.asmx", credentials))
{
client.LogFileName = @"Aspose.Email.EWS.log";
client.UseDateInLogFileName = false;
}
Contoh info file log
Di bawah ini adalah contoh entri file log ketika metode ListMessages dijalankan. Setiap entri baru didahului oleh stempel waktu.
Entri berikut dapat dibedakan dalam file log:
- Tajuk file log. Termasuk versi Aspose.Email, nama, dan waktu mulai.
Aspose.Email for .NET [22.10.0.0] EWS Client diagnostic log
Started: 07.11.2022 13:40:16
- Permintaan SOAP ke server.
07.11.2022 13:40:16 <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<ConnectingSID>
<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
</ConnectingSID>
</ExchangeImpersonation>
<RequestServerVersion xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2013" />
</soap:Header>
<soap:Body>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" Traversal="Shallow">
<ItemShape>
<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
</ItemShape>
<IndexedPageItemView MaxEntriesReturned="2147483647" Offset="0" BasePoint="Beginning" />
<ParentFolderIds>
<DistinguishedFolderId xmlns="http://schemas.microsoft.com/exchange/services/2006/types" Id="inbox" />
</ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>
- Header respons HTTP
07.11.2022 13:40:18 Cache-Control: private
Transfer-Encoding: chunked
Server: Microsoft-IIS/10.0
request-id: 5c777b61-e3d9-c262-fbb0-6f071d9ff68a
Alt-Svc: h3=":443", h3-29=":443"
X-CalculatedFETarget: CH0PR03CU015.internal.outlook.com, BL0PR02CU002.internal.outlook.com
X-BackEndHttpStatus: 200, 200, 200
Set-Cookie: exchangecookie=bf07039c0ee942438170c2958ca2d330; expires=Tue, 07-Nov-2023 10:40:17 GMT; path=/; secure; HttpOnly
X-CalculatedBETarget: BLAPR10MB4915.namprd10.PROD.OUTLOOK.COM
X-RUM-Validated: 1
x-ms-appId: 3fe84e63-c57b-48eb-ab41-879415751cfd
Restrict-Access-Confirm: 1
x-EwsHandler: FindItem
X-AspNet-Version: 4.0.30319
X-BeSku: WCS6
X-DiagInfo: BLAPR10MB4915
X-BEServer: BLAPR10MB4915
X-Proxy-RoutingCorrectness: 1
X-Proxy-BackendServerStatus: 200
X-FEProxyInfo: AS9PR06CA0693.EURPRD06.PROD.OUTLOOK.COM
X-FEEFZInfo: DHR
X-FEServer: BL0PR02CA0063, CH0PR03CA0449, AS9PR06CA0693
X-FirstHopCafeEFZ: DHR
X-Powered-By: ASP.NET
Date: Mon, 07 Nov 2022 10:40:17 GMT
Content-Type: text/xml; charset=utf-8
- Respons server SOAP.
07.11.2022 13:40:18 <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<ExchangeImpersonation xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<ConnectingSID>
<SmtpAddress>someaddress@someorg.onmicrosoft.com</SmtpAddress>
</ConnectingSID>
</ExchangeImpersonation>
<RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<BaseShape xmlns="http://schemas.microsoft.com/exchange/services/2006/types">IdOnly</BaseShape>
<AdditionalProperties xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:DateTimeCreated" />
<FieldURI FieldURI="item:DateTimeReceived" /><FieldURI FieldURI="item:DateTimeSent" />
<FieldURI FieldURI="item:IsDraft" /><FieldURI FieldURI="item:IsFromMe" />
<FieldURI FieldURI="item:HasAttachments" /><FieldURI FieldURI="item:IsUnmodified" />
<FieldURI FieldURI="item:ItemClass" /><FieldURI FieldURI="item:IsSubmitted" />
<FieldURI FieldURI="item:IsResend" /><FieldURI FieldURI="item:DisplayCc" /><FieldURI FieldURI="item:DisplayTo" />
<FieldURI FieldURI="item:Attachments" /><FieldURI FieldURI="item:LastModifiedTime" />
<FieldURI FieldURI="item:Size" /><FieldURI FieldURI="item:Subject" />
<FieldURI FieldURI="item:InternetMessageHeaders" /><FieldURI FieldURI="message:IsRead" />
<FieldURI FieldURI="message:InternetMessageId" /><FieldURI FieldURI="message:Sender" />
<FieldURI FieldURI="message:CcRecipients" /><FieldURI FieldURI="message:ToRecipients" />
<FieldURI FieldURI="message:BccRecipients" /><FieldURI FieldURI="message:From" />
</AdditionalProperties>
</ItemShape>
<ItemIds>
<ItemId
Id="AAMkAGJhZjYzY2I5LTdjYWMtNGFmMC05ODI1LTA5MTAzYTgwZTc4OQBGAAAAAABdN1MC60QcSpWwPYUTPhL2BwATlR+p0q0wT6WD0+d4WJhWAAAAAAEMAAATlR+p0q0wT6WD0+d4WJhWAACp2kv8AAA="
xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</ItemIds>
</GetItem>
</soap:Body>
</soap:Envelope>
Dapatkan Lisensi API Gratis
Anda bisa mendapatkan lisensi sementara gratis untuk menggunakan Aspose.Email for .NET tanpa batasan evaluasi.
Kesimpulan
Dalam artikel ini Anda telah mempelajari cara menyiapkan pencatatan aktivitas di klien EWS menggunakan C#. Fitur ini memungkinkan Anda untuk memantau aplikasi klien Anda dengan lebih baik. Selain itu, Anda dapat menjelajahi dokumentasi untuk membaca lebih lanjut tentang Aspose.Email for .NET. Selain itu, Anda dapat mengajukan pertanyaan melalui forum kami.