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

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ı alt kısımda bulunan yorumlar alanını kullanarak 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 Logging, Azure Log Streaming, Azure Web App Logging, Azure app service logging, Azure web app application logging, Windows Server logging, Azure for Architects, Azure Architect, Azure IAAS Planning, Azure SAAS Planning, Azure app services, Azure web app diagnostic, Azure app service diagnostic, Azure web app diagnostic logs, Log streaming with powershell, Azyre web app log streaming with azure cli

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

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.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir