İlginizi Çekebilir
  1. Ana Sayfa
  2. Microsoft Azure
  3. Azure Web App Logging – Logging Extension – Bölüm 1

Azure Web App Logging – Logging Extension – Bölüm 1

022419_1836_AzureWebApp1.png

Web uygulamalarınızı Azure üzerinde web app olarak yapılandırmak kuşkusuz yönetim anlamında oldukça rahatlık sağlayacaktır. Bunlara ek olarak Azure’un web app’ler için sağladığı bir sürü özellik sayesinde uygulamalarınız hem ulaşılabilirlik bakımından, hem yedeklilik bakımından hemde performans anlamında optimum düzeyde olacaktır. Tabi tüm bunların yanında web uygulamaları için gerekli olan en önemli bileşenlerden birisi de kuşkusuz loglamadır. Onpremise ortamlarda sunucuların üzerindeki gerek sunucu logları gerekse IIS logları bizlere hata ayıklama işlemleri sırasında oldukça anlamlı bilgiler sunmaktadır. Peki Azure üzerinde yönetilen bir platform olan web app’ler üzerinde istediğimiz loglara erişmek onpremise ortamındaki gibi kolay mı?

İşte b günkü makalemde sizlere bu sorunun cevabını ayrıntılı olarak anlatmaya çalışacağım. Makalenin çok uzun olmasını engellemek açısından bir kaç bölümde ele alacağım. Umarım herkes için faydalı bir yazı olur.

Öncelikle işe temelden başlamak istedim. Bu amaçla Visual Studio üzerinde hazır şablonları kullanarak .Net core 2.2 ile Razor Pages mimarisinde bir web uygulaması oluşturdum. Bunu oluşturmamdaki amaç uygulamalara logging mekanizmalarının nasıl entegre edilebileceğini göstermek. Bundan sonraki kısmı da adım adım yapılandırarak anlatmaya çalışacağım.

Uygulamayı oluşturduktan sonra Azure App Service uyumlu “Microsoft.Extensions.Logging.Azure.AppServices” extension’ının Nuget Package Manager yardımı ile yüklenmesi gerekir. Bu amaçla aşağıdaki gibi ilgili extension’ı bulup install butonuna tıklayarak kurulumu gerçekleştirelim.

Resim – 1

Bu işlemin ardından program.cs üzerine aşağıdaki şekilde yeni eklediğimiz extension’a ilişkin namespace’i ekleyelim.

Resim – 2

Name space’i ekledikten sonra konfigürasyonlarımıza başlayabiliriz. ASP.NET Core uygulamaları bir host instance’ı oluştururlar. Host uygulamanın başlatılmasından ve hayat döngüsünden sorumludur. Host, uygulama için bir server ve request processing pipeline oluşturur. Aynı zamanda konfigürasyon ve loglamadan da sorumludur.

Bu makalede loglama anlattığımız için host builder metodunu eklediğimiz extensions ile editlememiz gerekecek.

IwebHostBuilder web host, web app’leri host eder. Bu işlemi genelde Main metodunın içerisinde yapar. Main metodu da Program.cs içerisinde bulunur.

Şimdi öncelikle burada loglama’yı etkinleştirmek için aşağıdaki şekilde belirttiğim kodu CreateWebHostBuilder metoduna ekleyelim.

Resim – 3

Program.cs üzerinde logging’i etkinleştirdikten sonra, test olarak bir razor page ekleyip bu sayfa üzerinde gerekli konfigürasyonları yapalım.

DynamicDataPage isimli sayfanın code behind kısmına extension’a ilişkin name space’i ekleyelim. Sonrasında dependency injection için gerekli constructer’ı ekleyelim. Bu işlem sayfa yüklendiğinde logging için gerekli instance’ı oluşturacaktır.

Resim – 4

Daha sonrasında razor page’in OnGet() isimli metoduna gelip aşağıdaki şekilde logger isimli değişkene CreateLogger metodu ile oluşturduğumuz instance’ı atayalım. Bu işlemin ardından critical,error ve information loglarına ilişkin açıklamaları şekildeki gibi ekleyelim. (.cshtml dosyasına message değişkenini eklemeyi unutmayın)

Resim – 5

Bu işlemlerin ardından web uygulamasını build edip test ettiğinizde web uygulamanız basit olarak aşağıdaki gibi görünecektir.

Resim – 6

DynamicData isimli sayfayı kontrol ettiğinizde test mesajı aşağıdaki gibi görüntülenecektir. Bu sayfayı çağırdığınızda OnGet() metodu çağrılacağı için bu metod içerisine eklediğimiz loglar visual studio konsolunda output olarak görünecektir.

Resim – 7

Visual Studio konsolunda output olarak loglar aşağıdaki şekilde görünmektedir.

Resim – 8

Hızlı şekilde basit bir web uygulaması oluşturup, loglama için gerekli olan extension’ları ekleyip konfigüre ettik. Bu aşamadan sonra uygulamamızı Azure üzerine Wep App olarak publish edeceğiz. Bu işlemden sonraki kısımlarda yapacağımız farklı loglama konfigürasyonlarında bu logları takip ediyor olacağız.

Bir sonraki kısımda görüşmek üzere.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs

https://app.pluralsight.com/library/courses/microsoft-azure-app-services-managing

TAGs: , , Azure Web App Logging, , , , Azure for Architects, Azure Architect, , , , Azure web app diagnostic, , Azure web app diagnostic logs, ,

Yorum Yap

Yazar Hakkında

Sakarya doğumludur. İstanbul Üniversitesi’nde Matematik/Fen ve Teknoloji öğretmenliğini bitirmiştir. Yüksek lisansını Sakarya Üniversitesi Bilgisayar Mühendisliği’nde yapmıştır. Bilişim sektöründe çeşitli firmalarda sistem ve network sorumlusu olarak çalışmıştır. Bazı kurumlarda sistem ve network üzerine uzmanlık eğitimleri vermiştir. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. Microsoft System Center ürünleri, Powershell ve Azure teknolojileri ile ilgilenmektedir. 2016 yılında Microsoft tarafından Cloud and Datacenter alanında MVP unvanını almıştır.

Yorum Yap